在php中将键值存储为数组的索引

在php中将键值存储为数组的索引,php,Php,php中有如下数组 Array ( [0] => Array ( [int_city_id] => 1 [txt_cityname] => Lucknow [time_stamp] => 2017-09-18 14:11:05 ) [1] => Array ( [int_city_id] => 3 [txt_cityname] => Kanpu

php中有如下数组

Array
(

 [0] => Array
    (
        [int_city_id] => 1
        [txt_cityname] => Lucknow
        [time_stamp] => 2017-09-18 14:11:05
    )
  [1] => Array
    (
        [int_city_id] => 3
        [txt_cityname] => Kanpur
        [time_stamp] => 2017-09-14 12:09:46
    )


   )
需要像下面这样保存它

  Array
(
        [1] => Lucknow
       ,
        [3] => Kanpur
   )
如何使用最佳方法在php中实现这一点

我试过:

   foreach ($cities as $key => $value) {
     # code...
     $newarr[$value['int_city_id']]=$value['txt_cityname'];
   }
   print_r($newarr);

您可以使用如下内置函数:

$newArray = array_combine(array_column($cities,'int_city_id'),
                          array_column($cities,'txt_cityname'));
然而,你为什么要这样做?既然您已经有了一个
foreach
循环,在该循环中您可以使用
$cities
数组执行其他操作,为什么不在其中构建新的数组呢?换句话说,这并没有什么问题:

foreach ($cities as $index => $city) {
  # code...
  $newArray[$city['int_city_id']] = $city['txt_cityname'];
}
如果您经常使用
$city
的值,可以先提取它们:

foreach ($cities as $index => $city) {
  extract($city,EXTR_PREFIX_ALL,'city');
  # code...
  $newArray[$city_int_city_id] = $city_txt_cityname;
}

它看起来更干净一些,执行构建新阵列的行的速度稍微快一点,但只有很小的幅度。当然,
extract()
也需要时间,所以只有在反复使用
$city
的值时才能执行此操作。

检查数组并创建字典?在您询问“最佳方法”之前,请自己想出任何方法-尤其是对于如此琐碎的事情。@CBroe请检查edit@Akhil萨胡:你的尝试似乎奏效了,不是吗?”“最好的方法”不是一个很好的问题,它要求基于意见的答案。如果您不喜欢您的代码,请指出您希望改进的地方。@KIKOSoftware是的,它确实需要一个直接的方法在php内置类型中实现这一点