2012-10-20 93 views
0

我想要什麼:如何在PHP中將關鍵字添加到關聯數組中?

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'鍵。

+1

'$ outerArray = array($ originalArray);' – feeela

回答

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; 
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; 
+0

確實有效。我現在問這個問題我有點慚愧。 ^^但是,現在它工作正常。謝謝。 –

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手冊的Arrays部分。

相關問題