关联array_search无法按预期工作

时间:2017-04-19 04:19:58

标签: php arrays

您好我正在尝试使用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";
?>

2 个答案:

答案 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