在PHP中从多维数组返回单独的项目列表

在PHP中从多维数组返回单独的项目列表,php,arrays,multidimensional-array,foreach,Php,Arrays,Multidimensional Array,Foreach,我有以下数组: $items = array( 'item_1' => array('sub-item_1_A','sub-item_1_B', 'sub-item_1_C', 'sub-item_1_D', 'sub-item_1_E'), 'item_2' => array('sub-item_2_A','sub-item_2_B', 'sub-item_2_C'), 'item_3' => array('sub-item_3_A','sub-item_3_B', 'sub

我有以下数组:

$items = array(
'item_1' => array('sub-item_1_A','sub-item_1_B', 'sub-item_1_C', 'sub-item_1_D', 'sub-item_1_E'),
'item_2' => array('sub-item_2_A','sub-item_2_B', 'sub-item_2_C'),
'item_3' => array('sub-item_3_A','sub-item_3_B', 'sub-item_3_C', , 'sub-item_3_D'),
'item_4' => array('sub-item_4_A','sub-item_4_B'),
'item_5' );
我要做的第一件事是返回一个只包含项目的列表,即以下内容:

item_1, item_2, item_3, item_4, item_5
我需要这份清单本身

然后我还需要使用该列表创建每个子数组的单独列表。也就是说,这里有一个列表:

'sub-item_1_A','sub-item_1_B', 'sub-item_1_C', 'sub-item_1_D', 'sub-item_1_E'
下面是下一个列表:

'sub-item_2_A','sub-item_2_B', 'sub-item_2_C'
等等

有什么办法吗

谢谢

更新 我不想以字符串形式返回子项,而是希望能够单独访问每个项的子项。

,一个工作示例

要使“仅返回项目列表”,只需使用
array\u键

$list_of_first = array_keys($items);
仅返回项目列表:

Array
(
    [0] => item_1
    [1] => item_2
    [2] => item_3
    [3] => item_4
    [4] => item_5
)
sub-item_1_A, sub-item_1_B, sub-item_1_C, sub-item_1_D, sub-item_1_E
sub-item_2_A, sub-item_2_B, sub-item_2_C
sub-item_3_A, sub-item_3_B, sub-item_3_C, sub-item_3_D
sub-item_4_A, sub-item_4_B
sub-item_5_A, sub-item_5_B
您可以在此处使用内爆将其更改为列表

对于其余部分,您需要一个
foreach循环
,并使用内爆来获得您想要的字符串形式的数组项

foreach($items as $val){
    echo implode(", ", $val)."<br/>";
}
,这是一个有效的例子

要使“仅返回项目列表”,只需使用
array\u键

$list_of_first = array_keys($items);
仅返回项目列表:

Array
(
    [0] => item_1
    [1] => item_2
    [2] => item_3
    [3] => item_4
    [4] => item_5
)
sub-item_1_A, sub-item_1_B, sub-item_1_C, sub-item_1_D, sub-item_1_E
sub-item_2_A, sub-item_2_B, sub-item_2_C
sub-item_3_A, sub-item_3_B, sub-item_3_C, sub-item_3_D
sub-item_4_A, sub-item_4_B
sub-item_5_A, sub-item_5_B
您可以在此处使用内爆将其更改为列表

对于其余部分,您需要一个
foreach循环
,并使用内爆来获得您想要的字符串形式的数组项

foreach($items as $val){
    echo implode(", ", $val)."<br/>";
}
希望这将有助于:

首先,您需要获取所有数组键并将其内爆以获取项目列表。要获取子项列表,需要循环遍历数组值

<?php

$items = array(
'item_1' => array('sub-item_1_A','sub-item_1_B', 'sub-item_1_C', 'sub-item_1_D', 'sub-item_1_E'),
'item_2' => array('sub-item_2_A','sub-item_2_B', 'sub-item_2_C'),
'item_3' => array('sub-item_3_A','sub-item_3_B', 'sub-item_3_C', 'sub-item_3_D'),
'item_4' => array('sub-item_4_A','sub-item_4_B'),
'item_5' => "");

echo $itemsList = implode(',',array_keys($items))."\n";
$subItemsList = array_values($items);
foreach ($subItemsList as $key=>$value) {
    if (!empty($value))
        echo $subItemsList = implode(',',$value)."\n";

}
希望这将有助于:

首先,您需要获取所有数组键并将其内爆以获取项目列表。要获取子项列表,需要循环遍历数组值

<?php

$items = array(
'item_1' => array('sub-item_1_A','sub-item_1_B', 'sub-item_1_C', 'sub-item_1_D', 'sub-item_1_E'),
'item_2' => array('sub-item_2_A','sub-item_2_B', 'sub-item_2_C'),
'item_3' => array('sub-item_3_A','sub-item_3_B', 'sub-item_3_C', 'sub-item_3_D'),
'item_4' => array('sub-item_4_A','sub-item_4_B'),
'item_5' => "");

echo $itemsList = implode(',',array_keys($items))."\n";
$subItemsList = array_values($items);
foreach ($subItemsList as $key=>$value) {
    if (!empty($value))
        echo $subItemsList = implode(',',$value)."\n";

}

我看你需要做几件事。到目前为止你试过什么?有任何尝试吗?我尝试了以下方法(我没有保存我的尝试):foreach($items作为$item){echo'item:'.$item[0];}我相信每次都会返回'item5'。我尝试在没有[0]的情况下使用它,但它也不起作用(如果内存可用的话,我想我遇到了一个错误)。注意——这只是一个简单的尝试,目的是获得一份一阶物品清单[我的第一需要]。我发现您需要完成几件事情。到目前为止你试过什么?有任何尝试吗?我尝试了以下方法(我没有保存我的尝试):foreach($items作为$item){echo'item:'.$item[0];}我相信每次都会返回'item5'。我尝试在没有[0]的情况下使用它,但它也不起作用(如果内存可用的话,我想我遇到了一个错误)。注意--这只是一个简单的尝试,目的是获取第一批商品的列表[我的第一需要]。谢谢。数组_键是我要找的。关于第二部分——我实际上不希望值作为字符串返回。我想分别访问每个列表(并以编程方式)。因此,是否可以修改您的答案,以向我展示如何使用
foreach
单独返回每个子数组?是的,为什么不??您想知道什么?@Moshe,您可以查找子数组
$val
,这是从foreach返回的。谢谢。数组_键是我要找的。关于第二部分——我实际上不希望值作为字符串返回。我想分别访问每个列表(并以编程方式)。因此,是否可以修改您的答案,以向我展示如何使用
foreach
单独返回每个子数组?是的,为什么不??你想知道什么?@Moshe,你可以查找子数组
$val
,这是foreach返回的。这正是我需要的。谢谢。太好了;)很高兴帮助你;)这正是我需要的。谢谢。太好了;)很高兴帮助你;)