在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返回的。这正是我需要的。谢谢。太好了;)很高兴帮助你;)这正是我需要的。谢谢。太好了;)很高兴帮助你;)