Получить элементы массива по условию

Как на php получить из всего массива только элементы у которых у [field_id] => 385229 value = 6098759?

Array
(
    [0] => Array
    (
        [id] => 19768557
        [custom_fields_values] => Array
        (
            [0] => Array
            (
                [field_id] => 385229
                [values] => Array
                (
                    [0] => Array
                    (
                        [value] => 2424324
                    )

                )

            )

        )
    )

    [1] => Array
    (
        [id] => 19840535
        [custom_fields_values] => Array
        (
            [0] => Array
            (
                [field_id] => 385229
                [values] => Array
                (
                    [0] => Array
                    (
                        [value] => 6098759
                    )

                )

            )

        )
    )

    [2] => Array
    (
        [id] => 19840529
        [custom_fields_values] => Array
        (
            [0] => Array
            (
                [field_id] => 385229
                [values] => Array
                (
                    [0] => Array
                    (
                        [value] => 56765757
                    )

                )

            )

        )
    )

    [3] => Array
    (
        [id] => 19840523
        [custom_fields_values] => Array
        (
            [0] => Array
            (
                [field_id] => 385229
                [values] => Array
                (
                    [0] => Array
                    (
                        [value] => 6098759
                    )

                )

            )

        )
    )

    [4] => Array
    (
        [id] => 19840517
        [custom_fields_values] => Array
        (
            [0] => Array
            (
                [field_id] => 385229
                [values] => Array
                (
                    [0] => Array
                    (
                        [value] => 6098759
                    )

                )

            )

        )
    )

    [5] => Array
    (
        [id] => 19769763
        [custom_fields_values] => Array
        (
            [0] => Array
            (
                [field_id] => 385229
                [values] => Array
                (
                    [0] => Array
                    (
                        [value] => 78778878
                    )

                )

            )

        )
    )

    [6] => Array
    (
        [id] => 19769031
        [custom_fields_values] => Array
        (
            [0] => Array
            (
                [field_id] => 385229
                [values] => Array
                (
                    [0] => Array
                    (
                        [value] => 324342324
                    )

                )

            )

        )
    )
)

Ответы (2 шт):

Автор решения: Dev_Prod

Примерно так:

<?php

$array = [
    [
        'id' => 19768557,
        'custom_fields_values' =>
            [
                [
                    'field_id' => 385229,
                    'values' => [
                        'value' => 2424324
                    ]

                ]

            ]
    ],
    [
        'id' => 1976852257,
        'custom_fields_values' =>
            [
                [
                    'field_id' => 385229,
                    'values' => [
                        'value' => 6098759
                    ]

                ]

            ]
    ]
];

echo '<pre>';
print_r(
    array_filter(
        $array,
        function ($data) {
            foreach ($data['custom_fields_values'] as $ar) {
                if ($ar['field_id'] === 385229) {
                    foreach ($ar['values'] as $value) {
                        if ($value === 6098759) {
                            return $data;
                        }
                    }
                }
            }
        }
    )
);

Вывод такой:

Array
(
    [1] => Array
        (
            [id] => 1976852257
            [custom_fields_values] => Array
                (
                    [0] => Array
                        (
                            [field_id] => 385229
                            [values] => Array
                                (
                                    [value] => 6098759
                                )

                        )

                )

        )

)
→ Ссылка
Автор решения: Вадим Никитин

Пример вашего кода из задачи

$arTmp = [];
$tmp = [
0 => [
    'id' => 19768557,
    'custom_fields_values' => [
        0 => [
            'field_id' => 385229,
            'values' => [
                0 => [
                    'value' => 2424324
                ]
            ]
        ]
    ]
],
1 => [
    'id' => 19840535,
    'custom_fields_values' => [
        0 => [
            'field_id' => 385229,
            'values' => [
                0 => [
                    'value' => 6098759
                ]
            ]
        ]
    ]
],
2 => [
    'id' => 19840529,
    'custom_fields_values' => [
        0 => [
            'field_id' => 385229,
            'values' => [
                0 => [
                    'value' => 56765757
                ]
            ]
        ]
    ]
]

];

Ищем что нужно

foreach($tmp as $field)
{
    $field_tmp = $field['custom_fields_values'][0];
    if($field_tmp['field_id'] == 385229 && $field_tmp['values'][0]['value'] == 6098759)
        $arTmp[] = $field;
}

echo '<pre>';
print_r($arTmp);
echo '</pre>';
→ Ссылка