PHP具有多个;“儿童”;“中的数组”;“家长”;数组以及如何访问它们

PHP具有多个;“儿童”;“中的数组”;“家长”;数组以及如何访问它们,php,arrays,Php,Arrays,我正在尝试创建一个存储各种相册的阵列 到目前为止,我有以下代码 $photos = array( array("karate","1","2"), array("judo","1","2"), array("kickboxing","1","2"), array("womenselfdefense","1","2") ); $sections = array("karate"

我正在尝试创建一个存储各种相册的阵列

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

$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]);
}
但我认为我没有正确设置我的阵列,理想情况下,我希望主阵列$照片中有4个单独的阵列$空手道,$柔道,$跆拳道,$女子自卫

首先,我想计算每个数组中的项目数,然后在每个数组中随机选择一个项目,但是我相信目前在photos数组中有4个未命名的数组,因此我的代码返回几个未定义的索引:errors


有人能帮我吗?我想你是想用

 echo count($photos[$keys]);

我想你是想用

 echo count($photos[$keys]);

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

$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>';
}
$photos=array(
“空手道”=>数组(“1”、“2”),
“柔道”=>数组(“1”、“2”),
“跆拳道”=>数组(“1”、“2”),
“womenselfdefense”=>数组(“1”、“2”)
);
$sections=阵列(“空手道”、“柔道”、“跆拳道”、“女性自卫”);
foreach($keys=>$section)
{
回声计数($photos[$section])。
; }
您可以使用相册的名称作为照片阵列的键

$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>';
}
$photos=array(
“空手道”=>数组(“1”、“2”),
“柔道”=>数组(“1”、“2”),
“跆拳道”=>数组(“1”、“2”),
“womenselfdefense”=>数组(“1”、“2”)
);
$sections=阵列(“空手道”、“柔道”、“跆拳道”、“女性自卫”);
foreach($keys=>$section)
{
回声计数($photos[$section])。
; }
我想您正在寻找一个,它使用标签而不是数字作为键:

$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],
];

我想您正在寻找一个,它使用标签而不是数字作为键:

$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],
];

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

试着这样做:

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

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

试着这样做:

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

我们不明白这是为了什么?做一个
print\r($photos)
应该显示你的错误我们不明白这是为了什么?做一个
print\r($photos)
应该显示你的错误,但是你已经更改了数组以适应你的目的。这并没有回答OP的问题这看起来很有希望,等我回家后再试试,非常感谢@我不符合我的目的。他仍然有4个单独的数组,但是它们由关键字标识。但是您已经更改了数组以满足您的目的。这并没有回答OP的问题这看起来很有希望,等我回家后再试试,非常感谢@我不符合我的目的。他仍然有4个单独的数组,但是它们由关键字标识。