【发布时间】:2015-05-11 14:33:54
【问题描述】:
我有一个这样的数组..
array(26053) {
[0]=>
array(1) {
["New York"]=>
array(10) {
["state"]=>
string(8) "New York"
["state_code"]=>
string(0) ""
["country_code"]=>
string(1) "1"
["country"]=>
string(24) "United States Of America"
["lat"]=>
string(0) ""
["long"]=>
string(0) ""
["city_id"]=>
string(5) "70834"
["country_id"]=>
string(4) "6532"
["country_iso"]=>
string(2) "US"
["orignal_name"]=>
string(1) ""
}
}
[1]=>
array(1) {
["Mexico, Ciudad De"]=>
array(10) {
["state"]=>
string(0) ""
["state_code"]=>
string(0) ""
["country_code"]=>
string(2) "52"
["country"]=>
string(6) "Mexico"
["lat"]=>
string(0) ""
["long"]=>
string(0) ""
["city_id"]=>
string(5) "72329"
["country_id"]=>
string(0) ""
["country_iso"]=>
string(2) "MX"
["orignal_name"]=>
string(1) ""
}...
同样明智
为了创建上面的数组,我这样做了
$filename="city.dat";
$lines=file($filename);
$city_array = array();
foreach ($lines as $line_num => $value) {
$tmp_arry = array();
$parts = explode("\t", $value);
$tmp_arry[$parts[0]] = array();
$tmp_arry[$parts[0]]['state'] = $parts[1];
$tmp_arry[$parts[0]]['orignal_name'] = $parts[11];
array_push($city_array, $tmp_arry);
}
有什么方法可以将其转换为以下格式,因为 city.data 文件中的数据很大,因此我更容易以这种格式进行搜索
array(26053){
["New York"]=>.......
["Mexico"] => ...... }
感谢您的帮助
【问题讨论】:
-
试试
$city_array = array_merge($city_array, $tmp_arry);而不是array_push($city_array, $tmp_arry); -
array_merge 有不同的功能。!
-
什么意思?不行吗?
-
它给了我空数组array (0) {}
-
看来您只是将
array_push()替换为array_merge()而不是复制我的代码。
标签: php arrays associative-array