嗨,我正在进行一些操作,我需要从其键中获取数组的值。
我的$attr_color
变量的值为red
。
因此,如果red
在数组中,则需要返回其值。
以下是我的数组:
Array
(
[0] => Array
(
[label] =>
[value] =>
)
[1] => Array
(
[label] => red
[value] => 32
)
[2] => Array
(
[label] => green
[value] => 33
)
[3] => Array
(
[label] => pink
[value] => 34
)
[4] => Array
(
[label] => black
[value] => 35
)
[5] => Array
(
[label] => white
[value] => 36
)
)
我试过下面的代码,但它返回空白:
$attr_color = "red";
//$response is my array which i have mention above.
if(in_array($attr_color,array_column($response,"label")))
{
$value = $response['value'];
echo "Value".$value;
exit;
}
帮助?哪里弄错了?
答案 0 :(得分:2)
尝试这个简单的解决方案,希望这会帮助你。在这里,我们使用array_column
获取列并使用keys
和values
对其进行索引,其中keys
为labels
,values
为{{1 }}
Try this code snippet(带样本输入)
value
答案 1 :(得分:2)
在你的情况下,使用常规foreach
循环就足够了:
$attr_color = "red";
$value = "";
foreach ($response as $item) {
if ($item['label'] == $attr_color) {
$value = $item['value'];
break; // avoids redundant iterations
}
}
答案 2 :(得分:2)
使用array_search, 并检查错误 :
$index = array_search($attr_color, array_column($response,"label"));
if ($index !== false) {
echo $response[$index]['value'];
}
答案 3 :(得分:1)
将array_column
与第三个参数和array_search
一起使用为
$attr_color="red";
$arr = array_filter(array_column($response, "label", 'value'));// pass thired parameter to make its key
if (array_search($attr_color, $arr)) {// use array search here
echo array_search($attr_color, $arr);
}
答案 4 :(得分:1)
尝试以下代码:使用数组匹配功能:
$your_value = array_search($attr_color, array_column($response,"label"));
if ($index !== false) {
echo $response[$your_value]['value'];
}
答案 5 :(得分:0)
使用array_search
代替in_array
$attr_color = "red";
if(($index = array_search($attr_color,array_column($response,"label")))!==FALSE)
{
$value = $response[$index]['value'];
echo "Value".$value;
exit;
}
答案 6 :(得分:0)
尝试:
$attr_color = "red";
//$response is my array which i have mention above.
$index = array_search($attr_color, array_column($response, 'label'));
if($index!==false){
$value = $response[$index]['value'];
echo "Value:".$value;
exit;
}
这里$ index将获得标签为红色
的数组的索引