2017-06-15 142 views
-1

我開始使用PHP,並且遇到了一些麻煩,它會從外部網站發送的多個數組中輸出值。從不同陣列中獲取價值

我這樣做,是印刷在foreach和代碼如下所示:

Array 
(
    [id] => 1 
    [title] => Title 1 
) 
Array 
(
    [id] => 2 
    [title] => Title 2 
) 
Array 
(
    [id] => 3 
    [title] => Title 3 
) 

任何想法,我怎麼能得到迴音每個ID(1,2,3)? 讓我知道你是否需要更多的信息!

非常感謝!

+0

你可以嘗試使用array_merge功能http://php.net/manual/fr/function.array-merge.php – jlafforgue

回答

2

如果你只是想呼應所有的ID在所有陣列,一個簡單的解決辦法是:

foreach ([$array1, $array2, $array3] as $arr) { 
    echo $arr['id']; 
} 

一更好的解決方案可能會首先創建一個主陣列:

$mainArray = []; 

每次你得到一個新的陣列時,您只需將它們推到主陣列:

$mainArray[] = $array1; 
$mainArray[] = $array2; 
// ... and so on 

然後你就會有一個多維數組,可以循環他們:

foreach ($mainArray as $arr) { 
    echo $arr['id']; 
} 

哪種解決方案效果最好取決於您獲得陣列的方式以及它們的數量。

注:使用array_merge()正如其他人建議將在這種情況下不工作,因爲所有的陣列具有相同的密鑰。從array_merge()的文檔:「如果輸入數組具有相同的字符串鍵,則該鍵的後面的值將覆蓋前一個。」

+0

感謝馬格努斯!第一個解決方案做到了。我將繼續探索和測試你的其他選項。 – JoeMecPak

+0

@JoeMecPak - 兩種解決方案基本上都是一樣的。如果你只有一些固定數量的數組,那麼第一個應該足夠好,因爲它不需要你創建一個額外的變量。 –

1

正如你可以這樣做:

$array = array_merge_recursive($arr1, $arr2, $arr3); 
var_dump($newArray['id']); 
echo implode(",", $newArray['id']); 

一個demo code is here