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、... が返され、そこにデータが含まれます。データベースに画像が 1 つしかない場合、その配列に数字キー ('0') がないため、エラーが発生します。だから私は「0」キーを追加したい。

4

3 に答える 3

4

したがって、既存の配列を 1 レベル入れ子にするだけです。最善の方法は、それを新しい配列に追加することです。

$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;

それはあなたの質問に答えていますか、それともあなたが求めていることを完全に見逃していますか?

ご存じのとおり、次の 3 つの方法のいずれかで新しい配列キーを割り当てることができます。

  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 に答える