在php中将键值存储为数组的索引
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
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内置类型中实现这一点