2017-06-15 144 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