PHP多维数组处理-查找2个数组深的值


PHP multidimensional array handling - looking up a value 2 arrays deep

我在访问如下数组中的数据时遇到了一些问题:

array ( 
    0 => array ( 'value' => '46', 'label' => 'Brand A', ), 
    1 => array ( 'value' => '45', 'label' => 'Brand B', ), 
    2 => array ( 'value' => '570', 'label' => 'Brand C', ), 
);

本质上,我希望能够在给定值时返回标签的内容(例如45返回品牌B),但不确定如何在这些级别内做到这一点。

我需要通过某种循环将这个数组分解成更小的块来访问这些数据吗?

感谢

创建数组时,需要使用值作为关键字:

array(
    '46' => 'Brand A',
    '45' => 'Brand B',
);

$arrayVar['46'] = 'Brand A';

等等。

如果您不是创建数组的人,那么您可以foreach循环遍历它,并将其重新生成不同的结构。

<?php
$arr = array ( 
    0 => array ( 'value' => '46', 'label' => 'Brand A', ), 
    1 => array ( 'value' => '45', 'label' => 'Brand B', ), 
    2 => array ( 'value' => '570', 'label' => 'Brand C', ), 
);
$val = 45; // search for 45
foreach($arr as $vals){
   if($vals['value'] == $val){
      echo "value=".$vals['value'];
      echo "<br>";
      echo "label=".$vals['label'];
   }
}
?>

试试这个

<?php
$arr = array ( 
    0 => array ( 'value' => '46', 'label' => 'Brand A', ), 
    1 => array ( 'value' => '45', 'label' => 'Brand B', ), 
    2 => array ( 'value' => '570', 'label' => 'Brand C', ), 
);
foreach($arr as $ele){
echo "value=".$ele['value']." and label=".$ele['label'];
}
?>