php - 如何输出不同级别的数组

标签 php arrays

作为新手,有没有人有什么好的教程可以帮助我理解数组的不同层次?我想学习的是如何回应不同的水平,例如这是输出数组:

Array 
(
    [meta] => 
    Array 
    (
        [total_record_count] => 1 
        [total_pages] => 1 
        [current_page] => 1 
        [per_page] => 1 
    ) 
    [companies] => 
    Array 
    (
        [0] => 
        Array 
        (
            [id] => 291869 
            [url] => https://api.mattermark.com/companies/291869 
            [company_name] => gohenry.co.uk 
            [domain] => gohenry.co.uk 
        ) 
    ) 
    [total_companies] => 1 
    [page] => 1 
    [per_page] => 1 
) 

下面是解析数组的代码:

foreach($jsonObj as $item)
{
    echo $item['total_companies'];
}

我真的很难找到结构以及如何输出每个项目,例如尝试过类似的东西:

echo $item[0]['total_companies'];
echo $item['companies'][0]['id'];

如有任何帮助或指点,我们将不胜感激。

最佳答案

好吧,让我们开始吧,您有一个多维数组。对于多维数组,您需要使用循环,例如:forwhileforeach。对于您的目的,它是 foreach

从数组维度开始,数组可以是多维的,就像你有多维一样。如果您有如下所示的数组,那么它就是一维的。

array(
    key  => value,
    key2 => value2,
    key3 => value3,
    ...
)

现在,你怎么知道什么是多维数组,如果你的数组有另一个数组作为子数组,那么它被称为多维数组,如下所示。

$array = array(
    "foo" => "bar",
    42    => 24,
    "multi" => array(
         "dimensional" => array(
             "array" => "foo"
         )
    )
);

是时候使用您的阵列了。假设你想访问 company_name 的值,你应该怎么做??让你的数组名称是 $arr

首先,您需要使用一个 foreach 循环,例如:

foreach($arr as $key => $val)

(meta, companies, total_companies...),它们在第一维。现在检查 key 是否为 company_name ,如果匹配则比您得到的要好。或者,如果 $val 是一个数组,您需要进行另一个循环,您可以使用 is_array 检查它。

通过在循环执行的最后一个元素上进行相同的处理并找到您的值。

关于php - 如何输出不同级别的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37320647/

相关文章:

php - 如何使用 ajax 和 json 返回多个数据

javascript - 如何使 Node.js MongoDB 遵循对象引用?

c - 将数组类型分配给指针类型?

javascript - 打印 JSON 对象的内容

javascript - 如何从对象数组中提取多属性重复项?

php - 更改密码 PHP MySQL

php - 如何构建基本的 "To-Do"列表样式网站

arrays - 检查数组是否包含 D 中的元素

php - Codeigniter,是否可以有一个可变的公共(public)函数名称?

javascript - 是否可以在我的表单提交按钮上使用 onClick 函数?