您好我正在尝试使用Php中的关联数组进行array_search,但函数没有按预期工作。谁能帮我这个。目前使用的是php 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";
?>
答案 0 :(得分:1)
问题:在您的代码$mainArray = array("array1","array2","array3");
中,您声明的字符串数组不是数组数组。
更改此内容:
$mainArray = array("array1","array2","array3");
:此:
$mainArray = array($array1, $array2, $array3);
在定义$mainArray = array($array1, $array2, $array3)
,$array1
,$array2
$array3
PHP代码: 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'));
?>
答案 1 :(得分:1)
如果您需要更多简短代码段,请更改
echo "this line ".array_search("apple", array_column($mainArray,'item'));
要
echo "this line ".array_search("banana",
array_column(array_combine($mainArray, [$array1,$array2,$array3]),'item'));
我正在做的是将$ mainArray的值与所有相关数组组合在一起。
array_combine通过使用一个数组作为键而另一个数组作为其值来创建数组。
以下是demo。