【发布时间】:2016-10-17 16:00:02
【问题描述】:
我有一个数组并想创建一个新的数值数组。这看起来像这样:
$created_old = explode("_", $result[$i]["created"]);
$created_new = array();
$created_new[0] = $created_old[2];
$created_new[1] = $created_old[0];
$created_new[2] = $created_old[1];
$created_new[3] = "";
$created_new[4] = rtrim(explode(":", $created_old[3])[2], ")");
//Get name from the database
$created_new[3] = $name;
$created = implode("_", $created_new);
这个版本运行得很好,但是前一个版本少了一行,所以代码是这样的:
$created_old = explode("_", $result[$i]["created"]);
$created_new = array();
$created_new[0] = $created_old[2];
$created_new[1] = $created_old[0];
$created_new[2] = $created_old[1];
//$created_new[3] = ""; - I am missing
$created_new[4] = rtrim(explode(":", $created_old[3])[2], ")");
//Get name from the database
$created_new[3] = $name;
$created = implode("_", $created_new);
在第二个代码中,字符串$created 的顺序错误。索引 4 和 3 被切换。如果它是一个关联数组,我会理解这一点,但由于它是一个数字数组,我假设索引以数字方式增加并且像这样排序。由于我有一个工作版本,因此我不需要帮助来修复此代码,而是了解代码为何如此运行...
最好的问候 JRsz
【问题讨论】:
-
php 中没有任何
numeric数组。所有都是关联的。 -
这与我的问题无关,因此我没有发布它:仅供参考是我从数据库中读取的字符串,其格式如下:
123_123_123_abc:(abc:123) -
$created_new = array_fill(0, 5, '');初始化应该可以解决您的问题。
标签: php arrays indexing numeric implode