无法迭代数组的内容

时间:2015-02-08 15:16:34

标签: php arrays

我有一个数组,其中包含我在执行var_dump()时可以看到的内容数据,但我无法使用foreach()

迭代其内容

var_dump()生成以下输出

array(4) { [0]=> array(1) { [0]=> string(5) "Admin" } [1]=> array(1) { [0]=> string(4) "rick" } [2]=> array(1) { [0]=> string(6) "techbr" } [3]=> array(1) { [0]=> string(7) "testdom" } }

我希望能够获取此数组的内容并将其存储在另一个数组中。

目前我正在使用以下代码

$empList = array();
$empList = emp_list($mysqli);
var_dump($empList);//This generated the above output
foreach ($empList as $value)
{
    echo $value."<br>";
}

回声输出是

Array
Array
Array
Array

如何解决这个问题?

感谢您的建议我已经以这种方式修改了代码

$i=0;
$empList = array();
$tempList = array();
$tempList = emp_list($mysqli);
foreach ($tempList as $value)
{
    $empList[$i] = $value[0];
    $i++;
}

现在$empList数组以正确的格式存储内容

2 个答案:

答案 0 :(得分:1)

它在另一个数组中有一个数组,因此,使用两个foreach循环

$empList = array();
$empList = emp_list($mysqli);

foreach ($empList as $value)
{
    foreach ($value as $temp)
    {
        echo $temp."<br>";
    }
}

答案 1 :(得分:0)

正如u_mulder在你的问题评论中所说,你的数组不是一个字符串数组 - 它是一个包含更多数组的数组。 var_dump()旨在处理复杂的嵌套内容,但echo无法打印数组 - 这就是为什么它只是告诉你$ empList中的每个项都是一个数组,而不是它的内容。

如果你想从$ empList中的特定数组中获取内容,你需要通过索引键访问它,例如:

$first = $empList[0];
foreach ($first as $value) {
    echo $value."<br>";
}

或者如果你想迭代它们,你可以将两个foreach循环放在另一个中。