从具有相同键名的php数组中获取值

时间:2014-07-23 06:16:07

标签: php arrays

快速回答有关如何从数组中获取值(并将其传递给php变量):

我有这个阵列:

$array = array(
            array('name' => 'infotel', 'value' => '+39080123456' ), 
            array('name' => 'location', 'value' => 'Bari')
            );

我需要在$ telephone变量中传递“infotel”的“值”,并在$ city变量中传递“location”的“值”。

我该如何解决这个麻烦?感谢

6 个答案:

答案 0 :(得分:3)

你可以为它创建一个函数。

function custom_search($search_for='',$search_in=array())
{
  if($search_for=='' OR empty($search_in)) return '';
    foreach($search_in as $val)
    {
       if($val['name']==$search_for) {return $val['value'];}
    }
  return '';
}
$telephone=custom_search("infotel",$array);

答案 1 :(得分:1)

我可以使用新的array_column()需要PHP> = 5.5 )和array_walk()来完成。

好的'foreach循环应该没问题,或者你可以直接将它们拉出来,假设你一直都知道数组中的内容。但是我认为这是一个有点发烧友的事情;)......

$arr = array_column($array, 'value', 'name');

array_walk($arr, function(&$v, $k) use (&$telephone, &$city){
    if ($k == 'infotel') $telephone = $v;
    elseif ($k == 'location') $city = $v;
});

echo $telephone; //+39080123456
echo $city;      //Bari

See Demo - updated updated updated

答案 2 :(得分:0)

$telephone='';
$location='';
foreach($array as $k=>$v)
{
   if($v['name']=="infotel") 
   {
     $telephone=$v['value'];
     break;
   }
   if($v['name']=="location") 
   {
     $location=$v['value'];
     break;
   }
}
echo $telephone; 
echo $location;

答案 3 :(得分:0)

如果您只有这个数组,请使用:

$tel = $array[0]['value'];
$loc = $array[1]['value'];

答案 4 :(得分:0)

$array = array(
    array('name' => 'infotel', 'value' => '+39080123456' ),
    array('name' => 'location', 'value' => 'Bari')
);

$telephone = $array[0]['value'];
$city = $array[1]['value'];
echo $telephone;

echo $city;

答案 5 :(得分:0)

您可以使用此代码获得您的愿望结果。你不必担心数组键。但最后一把钥匙将取代您的位置和电话价值。

$array = array(
            array('name' => 'infotel', 'value' => '+39080123456' ), 
            array('name' => 'location', 'value' => 'Bari')
            );
$key1 = '';
$key2 = '';
foreach($array as $k => $a){
    if(array_search('infotel', $a) != false){
        $key1 = $k;
    }
    if(array_search('location', $a) != false){
        $key2 = $k;
    }
}
echo 'telephone = '.$array[$key1]['value'];
echo 'location = '.$array[$key2]['value'];