【问题标题】:PHP having multiple "child" arrays within "parent" array and how to access themPHP 在“父”数组中有多个“子”数组以及如何访问它们
【发布时间】:2016-12-23 17:30:36
【问题描述】:

我正在尝试创建一个存储各种相册的数组,

到目前为止,我有以下代码

$photos = array(
            array("karate","1","2"),
            array("judo","1","2"),
            array("kickboxing","1","2"),
            array("womenselfdefense","1","2")
            );

$sections = array("karate","judo","kickboxing","womenselfdefense");
foreach($sections as $keys => $section)
{
    echo count($photos[$section]);
}

但我认为我的阵列设置不正确,理想情况下,我希望主阵列 $photos 在其中包含 4 个单独的阵列 $karate,$judo,$kickboxing,$womenselfdefense。

我想从计算每个数组中的项目数开始,然后在每个数组中选择一个随机项目,但是我相信目前我的照片数组中有 4 个未命名的数组,因此我的代码返回了几个未定义的索引: 错误

谁能帮我解决这个问题

【问题讨论】:

  • 我们不明白这样做的目的是什么?
  • 做一个print_r($photos) 应该告诉你你的错误

标签: php arrays


【解决方案1】:

您可以使用相册的名称作为照片数组的键。

$photos = array(
    "karate" => array("1","2"),
    "judo" => array("1","2"),
    "kickboxing" => array("1","2"),
    "womenselfdefense" => array("1","2")
);
$sections = array("karate","judo","kickboxing","womenselfdefense");
foreach($sections as $keys => $section)
{
    echo count($photos[$section]).'<br>';
}

【讨论】:

  • 但是您已经更改了数组以适应您的目的。那不是回答 OP 的问题
  • 这看起来很有希望,等我回家试试,非常感谢!!!
  • @RiggsFolly 我不符合我的目的。他仍然有 4 个单独的数组,但是它们是由关键字标识的。
【解决方案2】:

我认为您正在寻找associative array,它使用标签而不是数字作为键:

$photos = array(
    "karate" => array("1","2"),
    "judo" => array("1","2"),
    "kickboxing" => array("1","2"),
    "womenselfdefense" => array("1","2")
);

foreach ($photos as $section=>$values) {
    //now $values is your array of numbers
    echo count($values);
}

或者,用现代语法:

$photos = [
    "karate" => [1, 2],
    "judo" => [1, 2],
    "kickboxing" => [1, 2],
    "womenselfdefense" => [1, 2],
];

【讨论】:

    【解决方案3】:

    您正在尝试访问数组而不为更高级别的数组分配任何键。

    试试这样的:

    $photos = array(
        'karate' => array("karate","1","2"),
        'judo' => array("judo","1","2"),
        'kickboxing' => array("kickboxing","1","2"),
        'womenselfdefense' => array("womenselfdefense","1","2")
    );
    

    【讨论】:

      【解决方案4】:

      我认为你的意思是使用

       echo count($photos[$keys]);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-02-28
        • 1970-01-01
        • 2016-12-24
        • 2013-12-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多