Check if associative array contains value, and retrieve key / position in array
arrays, associative, associative-array, php
Solution
Try something like this
$foo = array(
array('value' => 5680, 'text' => 'Red'),
array('value' => 7899, 'text' => 'Green'),
array('value' => 9968, 'text' => 'Blue'),
array('value' => 4038, 'text' => 'Yellow'),
);
$found = current(array_filter($foo, function($item) {
return isset($item['value']) && 7899 == $item['value'];
}));
print_r($found);
Which outputs
Array
(
[value] => 7899
[text] => Green
)
The key here is `array_filter`. If the search value `7899` is not static then you could bring it in to the closure with something like `function($item) use($searchValue)`. Note that `array_filter` is returning an array of elements which is why I pass it through `current`
Problem
I'm struggling to explain what I want to do here so apologies if I confuse you.. I'm just as confused myself I have an array like so: ``` $foo = array( array('value' => 5680, 'text' => 'Red'), array('value' => 7899, 'text' => 'Green'), array('value' => 9968, 'text' => 'Blue'), array('value' => 4038, 'text' => 'Yellow'), ) ``` I want to check if the array contains the value e.g. 7899 and also get the text linked to that value "Green" in the example above.