2

I have the following array in PHP:

Array ( [0] => Array ( [name] => category [value] => OUT ) [1] => Array ( [name] => Name_Fr [value] => p ) ... 

How can I get the value if I know the name ?

I tried:

$value = $array['name']['Name_Fr']; 

Thanks.

3 Answers 3

2

If you're running PHP 5.5, you can do a lot with array_column(), such as:

$newArray = array_column($oldArray, 'value', 'name'); $value = $newArray[$knownName]; 

or even (using array dereferencing):

$value = array_column($oldArray, 'value', 'name')[$knownName]; 

For earlier versions of PHP, you could do something like:

$value = array_filter( $oldArray, function ($value) use ($knownName) { return $value['name'] == $knownName; } ); $value = array_shift($value); echo $value['value'], PHP_EOL; 
Sign up to request clarification or add additional context in comments.

Comments

2

You would have to loop through all indexes finding where the names match.

Comments

1

since it's an array of arrays, a loop would help you do so.

foreach($arrays as $array) { $value = $array[value] } 

Comments