【问题标题】:how to return arrays that foreach doesn't catch如何返回 foreach 没有捕获的数组
【发布时间】:2022-01-11 22:06:51
【问题描述】:

我的 foreach 循环有问题,我有一个带有多个数组的变量,比如底部的两个数组,我需要从 [sub] 级别获取数组...我使用

foreach ($global['sub'] as $sub) {
    $global['sub'] = $sub;
    $global['child_id'] = $sub['id'];
    $global['child_name'] = $sub['name'];
    $global['child_url'] = $pr. $sub['url'];
}

但它仅适用于在 [sub] 中有数组但不返回 [sub] 为空的第二个数组的数组 我尝试获取所有数组 i $global 变量那些在 [sub] 中具有子数组的数组以及那些没有的数组...

Array
(
    [Segment_id] => ......
    [Segment] => ......
    [Segment_url] => ......
    [Categories_id] => ......
    [Categories] => ......
    [Categories_url] => ......
    [sub_Categories_id] => ......
    [sub_Categories] => ......
    [sub_Categories_url] => ......
    [categoryId] => ......
    [categoryName] => ......
    [product_count] => ......
    [sub] => Array
        (
            [0] => Array
                (
                    [id] => ......
                    [name] => ......
                    [anchor] => 
                    [url] => ......
                    [description] => 
                    [productCount] => ......
                    [products] => ......
                        (
                            [0] =>
                            [1] =>
                            [2] =>
                            [3] =>
                            [4] =>
                            [5] =>
                        )

                )

Array
(
    [Segment_id] => ......
    [Segment] => ......
    [Segment_url] => ......
    [Categories_id] => ......
    [Categories] => ......
    [Categories_url] => ......
    [sub_Categories_id] => ......
    [sub_Categories] => ......
    [sub_Categories_url] => ......
    [categoryId] => 1394
    [categoryName] => ......
    [product_count] => ......
    [sub] => Array
        (
        )

我需要得到

Array
(
    [Segment_id] => .....
    [Segment] => .......
    [Segment_url] => .......
    [Categories_id] => .....
    [Categories] => .....
    [Categories_url] => ......
    [sub_Categories_id] => ....
    [sub_Categories] => .....
    [sub_Categories_url] => ......
    [categoryId] => 397
    [categoryName] => ......
    [product_count] => ......
    [subid] => .....
    [sub_name] => ......
    [sub_url] => ......
    [description] => 
    [sub_productCount] => ......
  

[sub] 中没有任何内容的第二个可能与现在一样......

【问题讨论】:

  • 您是说要删除 ['sub'] 子数组,并将其替换为您在循环中提到的 3 个新变量。它真的不清楚你在问什么或试图做什么,所以你能试着再输入一下描述吗
  • 你说的不清楚。
  • 嗨,是的,我想删除子数组并只获取主数组的几个键

标签: php arrays


【解决方案1】:

首先检查sub子数组是否存在,如果存在则处理它然后删除它,否则什么也不做或将新字段设置为默认值,或者''什么都不做

$pr = 'something';      // was not mentioned in your code

if ( isset($global['sub']) ) {
    
    $global['child_id']     = $global['sub']['id'];
    $global['child_name']   = $global['sub']['name'];
    $global['child_url']    = $pr . $global['sub']['url'];
    
    // remove the 'sub` sub array
    unset( $global['sub'] );
} else {
    // there is no `sub` sub array so create with some default values
    // or if you dont want anything in this case, remove the ELSE
    $global['child_id']     = 'default value';
    $global['child_name']   = 'default value';
    $global['child_url']    = 'default value';
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-17
    • 2016-07-18
    • 1970-01-01
    相关资源
    最近更新 更多