0

我想要的是:

Array
(
    [0] => Array
        (
            [id] => 154
            [url] => http://farm9.staticflickr.com/8187/8105302152_c886bc2179_c.jpg
            [categorie_id] => 2
            [user_id] => 23
            [time] => 2012-10-20 18:13:40
        )
)

是)我有的:

Array
(
    [id] => 158
    [url] => http://farm9.staticflickr.com/8468/8105709759_915c1092b4_c.jpg
    [categorie_id] => 2
    [user_id] => 23
    [time] => 2012-10-20 19:30:16
)

(不要介意价值观,它们是不同的,我知道)

其实很简单的问题,但我只是找不到它如何解决它。两个数组都是关联获取的(这是数据库的返回)。

在上面的示例中,有多个记录(图片),因此它返回一个 0,1,2,3, ... 并在其中返回数据。当我的数据库中只有一张图片时,我会收到错误,因为我在该数组中没有数字键('0')。所以我想添加'0'键。

4

3 回答 3

4

因此,您只是希望将现有数组嵌套一层。最好的方法是将其附加到一个新数组中:

$original_array = array('id'=>158, 'url'=>'http:....','categorie_id' => 2, 'user_id' => 23, 'time' => '2012-10-20');

// New array to hold the result
$output = array();
// Append the old array onto the new one with []
$output[] = $original_array;
print_r($output);
Array
(
    [0] => Array
        (
            [id] => 158
            [url] => http:....
            [categorie_id] => 2
            [user_id] => 23
            [time] => 2012-10-20
        )

)

如果您必须在外部数组中指定键,您也可以这样做:

// Make sure it is at key 1
$output[1] = $original_array;
于 2012-10-20T17:35:05.953 回答
4

我不确定我是否正确阅读了您的问题,但听起来您只是想要这个:

$parent_arr = array ();
$sub_arr = array (
    'id' => 158,
    'url' => '/*url*/',
    'categorie_id' => 2,
    'user_id' => 23,
    'time' => '2012-10-20 19:30:16');

$parent_arr[0] = $sub_arr;

这是否回答了您的问题,还是我完全错过了您的要求?

您可能知道,您可以通过以下三种方式之一分配新的数组键:

  1. 像我在上面的示例中那样手动设置密钥$parent_arr[0]
  2. 让 PHP 选择下一个可用的数组键:$parent_arr[]
  3. 使用array_pusharray_unshift 之类的函数将新项目添加到数组的开头或结尾。

所有这些内容都包含在 PHP 手册的数组部分中。

于 2012-10-20T17:37:02.907 回答
3

你可以这样做

$oldArray = Array ( [id] => 158 [url] => http://farm9.staticflickr.com/8468/8105709759_915c1092b4_c.jpg [categorie_id] => 2 [user_id] => 23 [time] => 2012-10-20 19:30:16 );

$newArray = array();
$newArray[] = $oldArray;

或者

$newArray[0] = $oldArray;
于 2012-10-20T17:36:35.593 回答