获取多维数组中一个子数组或多个子数组之间的差异
Get the difference between one sub-Array or multiple sub-Arrays in a multidimensional Array
我有以下多维数组,如果该数组中只有一个或多个子数组,我想得到不同之处。
例如:
- 数组[1]中只有一个子数组[例子]
- 在数组 [2] 中有两个子数组 [示例]
[content] => Array
(
[...]
[1] => Array
(
[example] => Array
(
[value] => GET THIS
[attr] => Array
(
[...]
)
)
)
[2] => Array
(
[example] => Array
(
[0] => Array
(
[value] => GET THIS
[attr] => Array
(
[...]
)
)
[1] => Array
(
[value] => GET THIS
[attr] => Array
(
[...]
)
)
)
)
现在要从第一个数组中获取 [value],我会尝试:
foreach ($content as $example) {
echo($content['example']['value']);
}
为了从第二个数组中获取每个 [value],我会尝试:
foreach ($content as $example) {
foreach ($example as $values) {
echo($value['value']);
}
}
到目前为止一切顺利,但我如何决定 运行 使用哪个函数?我错过了什么吗?
有没有可以帮助我的 if 语句?
类似于:
if(multiple sub-arrays){
// do first code example
} else {
// do second code example
}
我只是想要一个方法来从数组中获取所有名为 [value] 的值。
提前致谢!
假设你的最终维度总是作为一个 'value' 节点:
function arrayIterate($array){
foreach ($content as $example) {
if(!isset($example['value'])){
arrayIterate($example);
}else{
echo($example['value']);
}
}
}
最明显的解决方案是更改生成 content
数组的函数,使其 始终 生成格式如下的子数组:
[content] => Array
(
[...]
[1] => Array
(
[example] => Array
(
[0] => Array
(
[value] => GET THIS
[attr] => Array
(
[...]
)
)
)
)
[2] => Array
(
[example] => Array
(
[0] => Array
(
[value] => GET THIS
[attr] => Array
(
[...]
)
)
[1] => Array
(
[value] => GET THIS
[attr] => Array
(
[...]
)
)
)
)
但如果您没有这样的选择 - 那么请使用简单的检查:
foreach ($content as $item) {
// here check if your `$item` has an `value` subkey under `example` key
if (array_key_exists('value', $item['example'])) {
echo($item['example']['value']);
} else {
foreach ($item['example'] as $values) {
echo ($values['value']);
}
}
}
我有以下多维数组,如果该数组中只有一个或多个子数组,我想得到不同之处。
例如:
- 数组[1]中只有一个子数组[例子]
- 在数组 [2] 中有两个子数组 [示例]
[content] => Array
(
[...]
[1] => Array
(
[example] => Array
(
[value] => GET THIS
[attr] => Array
(
[...]
)
)
)
[2] => Array
(
[example] => Array
(
[0] => Array
(
[value] => GET THIS
[attr] => Array
(
[...]
)
)
[1] => Array
(
[value] => GET THIS
[attr] => Array
(
[...]
)
)
)
)
现在要从第一个数组中获取 [value],我会尝试:
foreach ($content as $example) {
echo($content['example']['value']);
}
为了从第二个数组中获取每个 [value],我会尝试:
foreach ($content as $example) {
foreach ($example as $values) {
echo($value['value']);
}
}
到目前为止一切顺利,但我如何决定 运行 使用哪个函数?我错过了什么吗? 有没有可以帮助我的 if 语句?
类似于:
if(multiple sub-arrays){
// do first code example
} else {
// do second code example
}
我只是想要一个方法来从数组中获取所有名为 [value] 的值。
提前致谢!
假设你的最终维度总是作为一个 'value' 节点:
function arrayIterate($array){
foreach ($content as $example) {
if(!isset($example['value'])){
arrayIterate($example);
}else{
echo($example['value']);
}
}
}
最明显的解决方案是更改生成 content
数组的函数,使其 始终 生成格式如下的子数组:
[content] => Array
(
[...]
[1] => Array
(
[example] => Array
(
[0] => Array
(
[value] => GET THIS
[attr] => Array
(
[...]
)
)
)
)
[2] => Array
(
[example] => Array
(
[0] => Array
(
[value] => GET THIS
[attr] => Array
(
[...]
)
)
[1] => Array
(
[value] => GET THIS
[attr] => Array
(
[...]
)
)
)
)
但如果您没有这样的选择 - 那么请使用简单的检查:
foreach ($content as $item) {
// here check if your `$item` has an `value` subkey under `example` key
if (array_key_exists('value', $item['example'])) {
echo($item['example']['value']);
} else {
foreach ($item['example'] as $values) {
echo ($values['value']);
}
}
}