Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 按值搜索多维数组以查找父同级值_Php_Arrays_Multidimensional Array - Fatal编程技术网

Php 按值搜索多维数组以查找父同级值

Php 按值搜索多维数组以查找父同级值,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,我有一个多维数组,我需要搜索一些特定的值,以下是数组: $Array = Array ( Array ( 'sibling' => 'Product 1', 'another_sibling' => 'not important', 'parent' => Array (

我有一个多维数组,我需要搜索一些特定的值,以下是数组:

$Array = Array
    (
        Array
            (
                'sibling' => 'Product 1',
                'another_sibling' => 'not important',
                'parent' => Array
                    (
                        '0' => Array
                            (
                                'product-name' => 'Placeholder name 0',
                            ),

                        '1' => Array
                            (
                                'product-name' =>  'Placeholder name 1',
                            ),

                        '2' => Array
                            (
                                'product-name' => 'Placeholder name 2',
                            )

                    )

            ),

        Array
            (
                'sibling' => 'Product 2',
                'another_sibling' => 'not important',
                'parent' => Array
                    (
                        '0' => Array
                            (
                                'product-name' => 'Placeholder name 3',
                            )

                    )

            )

    );
现在,我想基于“product name”值获取“sibling”值,假设我有以下内容:

$RequestData = Array
(
    '0' => 'Placeholder name 0',
    '1' => 'Placeholder name 1',
    '2' => 'Placeholder name 3',
);
我需要一个函数来获取
$RequestData
并在
$array
中搜索'sibling'值,然后返回如下内容:

产品1

  • 占位符名称0

  • 占位符名称1

产品2

  • 占位符名称3
我可以这样做,但它会为每个项目返回一个数组,我想将同一产品的项目合并到同一个数组中:

function find($RequestData , $array){

   foreach ($RequestData as $item) {

       foreach ($array as $key => $val) {

            foreach ($val['parent'] as $key0 => $val0) {


               if ($val0['product-name'] == $item) {


                   $result[] = array(
                                'product' => $val['sibling'],
                                'items' => array (
                                    $item,
                                ),
                                );
               }
            }
       }
    }

       return $result;
}
尝试此功能:

function find($RequestData, $array)
{

    $result = [];

    $elementsReq = count($RequestData);

    foreach ($array as $value)
    {

        $curProd = $value['sibling'];

        $elem =  [];

        foreach ($value['parent'] as $parent)
        {
            for ($i=0; $i < $elementsReq; $i++)
            {


                if($parent['product-name'] ==  $RequestData[$i])
                {
                    array_push($elem, $RequestData[$i]);
                    break;
                }
            }

        }


        $curProdArray = array
        (
            'sibling' => $curProd, 
            'products-name' => $elem
        );

        array_push($result, $curProdArray);
    }

    return $result;
}

请你把你的问题清楚明确地说出来。谢谢。我正在尝试对其父项下的每个项目进行排序,并删除所有其他内容。该数组将有多个不同的产品,每个产品都有多个项目,我希望能够根据其项目的名称获取产品名称,并在其父项标题下对搜索的项目进行正确排序
Array
(
    [0] => Array
        (
            [sibling] => Product 1
            [products-name] => Array
                (
                    [0] => Placeholder name 0
                    [1] => Placeholder name 1
                )

        )

    [1] => Array
        (
            [sibling] => Product 2
            [products-name] => Array
                (
                    [0] => Placeholder name 3
                )

        )

)