以下是来自paypal.com的所有外部JS文件的示例数组:
Array
(
[src] => Array
(
[1] => https://www.paypalobjects.com/WEBSCR-590-20090814-1/js/lib/min/global.js
[2] => https://www.paypalobjects.com/WEBSCR-590-20090814-1/js/tns/mid.js
[8] => https://www.paypalobjects.com/WEBSCR-590-20090814-1/js/opinionlab/oo_engine.js
[11] => https://www.paypalobjects.com/WEBSCR-590-20090814-1/js/iconix.js
[12] => https://www.paypalobjects.com/WEBSCR-590-20090814-1/js/pageBlockingUnsafeBrowsers.js
[13] => https://www.paypalobjects.com/js/tns/min/bid.js
[15] => https://www.paypalobjects.com/WEBSCR-590-20090814-1/js/pp_naturalsearch.js
[17] => https://www.paypalobjects.com/WEBSCR-590-20090814-1/js/site_catalyst/pp_jscode_080706.js
)
[size] => Array
(
[1] => 0.273
[2] => 0.266
[8] => 0.279
[11] => 0.265
[12] => 0.285
[13] => 0.248
[15] => 0.275
[17] => 0.289
)
)
Run Code Online (Sandbox Code Playgroud)
是否有PHP的内置函数,或者可以将此数组重新排序为此的自定义(也没有大的性能影响):
Array
(
[src] => Array
(
[1] => https://www.paypalobjects.com/WEBSCR-590-20090814-1/js/lib/min/global.js
[2] => https://www.paypalobjects.com/WEBSCR-590-20090814-1/js/tns/mid.js
[3] => https://www.paypalobjects.com/WEBSCR-590-20090814-1/js/opinionlab/oo_engine.js
[4] => https://www.paypalobjects.com/WEBSCR-590-20090814-1/js/iconix.js
[5] => https://www.paypalobjects.com/WEBSCR-590-20090814-1/js/pageBlockingUnsafeBrowsers.js
[6] => https://www.paypalobjects.com/js/tns/min/bid.js
[7] => https://www.paypalobjects.com/WEBSCR-590-20090814-1/js/pp_naturalsearch.js
[8] => https://www.paypalobjects.com/WEBSCR-590-20090814-1/js/site_catalyst/pp_jscode_080706.js
)
[size] => Array
(
[1] => 0.273
[2] => 0.266
[3] => 0.279
[4] => 0.265
[5] => 0.285
[6] => 0.248
[7] => 0.275
[8] => 0.289
)
)
Run Code Online (Sandbox Code Playgroud)
Imr*_*ran 10
这个功能应该可以工作,这很简单.
function reindex_array($src) {
$dest = array();
foreach ($array as $key => $value) {
if (is_array($value)) {
foreach ($value as $dest_val) {
$dest[$key][] = $dest_val;
}
}
}
return $dest;
}
Run Code Online (Sandbox Code Playgroud)
使用Henrik的答案中建议的array_values()
function reindex_array($src) {
$dest = array();
foreach ($array as $key => $value) {
if (is_array($value)) {
$dest[$key] = array_values($value);
}
}
return $dest;
}
Run Code Online (Sandbox Code Playgroud)
这将使数组索引从0开始.如果您想要基于1的索引,那么使用:
function reindex_array($src) {
$dest = array();
foreach ($array as $key => $value) {
if (is_array($value)) {
$count = 1;
foreach ($value as $dest_val) {
$dest[$key][$count] = $dest_val;
$count++;
}
}
}
return $dest;
}
Run Code Online (Sandbox Code Playgroud)
编辑:我没有注意到数组首先嵌套,因此以下是不够的.由于伊姆兰已经纳入了我的建议,我将不再进一步编辑.
检查array_values()函数,它几乎完全符合您的需要.
与你想要的输出的唯一区别在于它从零开始重新索引 - 如果你真的需要索引从一开始,你可以先array_shift()在虚拟条目中,然后在array_unshift()它之后.