$testArray = array(
array(1, 2, "file1.png"),
array(1, 3, "file2.png"),
array(1, 4, "file3.png")
);
print_r (array_keys($testArray, array(1, 3, "file2.png"))); // Works
print_r (array_keys($testArray, array(1, 3))); // Does not work.
As shown in the code above, I'd like to be able to quickly find an array in a multidimensional array but only specify two of the values.
One way to do this is to filter the testArray down to those number of keys using array_map, then use array_search to get the key.
$testArray = array(
array(1,2,"file1.png"),
array(1,3,"file2.png"),
array(1,4,"file3.png")
);
$search = [1,3];
$filtered = array_map(function ($item) use ($search){
return array_slice($item, 0, count($search));
}, $testArray);
$key = array_search($search, $filtered);
if ($key !== false){
print_r($testArray[$key]);
} else {
echo 'not found';
}