从数组中获取价值多行

时间:2018-06-27 09:02:39

标签: php arrays

我有这个数组,我想让所有父母都保持平衡:

此数组为多行,请注意子数组不是静态的可能会更多 谢谢

 $array_content = [
        'id'=> 4,    
        'Parent' => [
            [
                'id'        => 54,
                'Parent'  => [
                    [
                        'id'      => 324,
                        'KUI'    => 'ABC',
                        'figure'  => 'Tira',  
                        'Parent'=> []  
                    ],
                    [
                        'id'        => 52355,
                        'lft'       => 'LEFT',
                        'Parent'  => [
                            [
                                'id'        => 4,
                                'Parent'  => [
                                    [
                                        'id'      => 234,
                                        'ui' => 'UITed',
                                        'Parent'=> ['Balance'=>450.3]  
                                    ]
                                ]
                            ],
                            [
                                'id'      => 76,
                                'ui' => 'some value',
                                'Parent'=> []  
                            ]
                        ],
                    ]
                ],
             ],
             [
                'id'        => 23,
                'title'     => 'ABC',    
                'Parent'  => [

                ],
            ]
        ]
    ];

我需要查看的输出是来自父代的id = 234的余额:

'Balance'=>450.3

2 个答案:

答案 0 :(得分:-1)

您也可以代替迭代数组,而将其设为Json并使用substr和strpos(或regex)查找值。

$json = json_encode($array_content);
$pos = strpos($json, "Balance\":")+9; // +9 for Balance": is 9 characters
Echo substr($json, $pos, strpos($json, "}", $pos)-$pos); // 450.3

https://3v4l.org/cojXe

答案 1 :(得分:-1)

我在这里找到了答案谢谢大家:

  $array_content = [
        'id'=> 4,    
        'Parent' => [
            [
                'id'        => 54,
                'Parent'  => [
                    [
                        'id'      => 324,
                        'KUI'    => 'ABC',
                        'figure'  => 'Tira',  
                        'Parent'=> []  
                    ],
                    [
                        'id'        => 52355,
                        'lft'       => 'LEFT',
                        'Parent'  => [
                            [
                                'id'        => 4,
                                'Parent'  => [
                                    [
                                        'id'      => 234,
                                        'ui' => 'UITed',
                                        'Parent'=> ['Balance'=>450.3]  
                                    ]
                                ]
                            ],
                            [
                                'id'      => 76,
                                'ui' => 'some value',
                                'Parent'=> []  
                            ]
                        ],
                    ]
                ],
             ],
             [
                'id'        => 23,
                'title'     => 'ABC',    
                'Parent'  => [

                ],
            ]
        ]
    ];


    function search($arr,$id)
    {
        if(gettype($arr) == 'array')
        foreach($arr as $key =>$list)
    {

        if(gettype($list) == 'array'){  
        if(isset($list['id']))
        {
            if($list['id'] ==$id)
            print_r($list['Parent']);


        }
            search($list,$id);
        }
    }

    }

    foreach($array_content as $key)
    {

        search($key,234);


    }