关联array_search无法按预期工作

Hi I am trying to array_search for associative array in Php but the function isnot working as expected. can anyone help me with this. currently using php version 5.4

<?php 
$mainArray = array("array1","array2","array3");
    $array1 = array("item"=>"apple","price"=>2);
    $array2 = array("item"=>"banana","price"=>3);
    $array3 = array("item"=>"carrot","price"=>4);
echo phpversion();
echo "this line ".array_search("apple", array_column($mainArray,'item'));
echo "end";
?>

Problem: In your code $mainArray = array("array1","array2","array3"); you are declaring array of strings not array of arrays.

Change this:

$mainArray = array("array1","array2","array3");

This:

$mainArray = array($array1, $array2, $array3);

And use this $mainArray = array($array1, $array2, $array3) after definition of $array1, $array2, $array3

PHP code: Try this code snippet here

<?php

ini_set('display_errors', 1);
$array1 = array("item" => "apple", "price" => 2);
$array2 = array("item" => "banana", "price" => 3);
$array3 = array("item" => "carrot", "price" => 4);

//should be declared like this and should be after defintion of $array1, $array2, $array3
$mainArray = array($array1, $array2, $array3);

echo "this line " . array_search("apple", array_column($mainArray, 'item'));
?>

If you need more short snippet, change

echo "this line ".array_search("apple", array_column($mainArray,'item'));

TO

echo "this line ".array_search("banana", 
array_column(array_combine($mainArray, [$array1,$array2,$array3]),'item'));

What I am doing is, combining values of $mainArray with all related arrays to it.

array_combine Creates an array by using one array for keys and another for its values.

Here is working demo.