如何使用 php 进行数组过滤器


How to do array filter using php

我在下面有类似数组。

$a=[
    [id] => 18162876
    [name] => phpuG4fhx
    [type] => Video
    [created] => 2016-02-11T16:55:54+00:00
    [updated] => 2016-02-11T16:55:54+00:00
    [duration] => 14.975
    [hashed_id] => uzyng792la
    [description] => 
    [progress] => 0
    [status] => queued
    [thumbnail] => Array
        (
            [url] => https://embed-ssl.wistia.com/deliveries/c2b1eb4bdf6f872fb9da416994973a5358b31868.jpg?image_crop_resized=200x120&video_still_time=7
            [width] => 200
            [height] => 120
        )
    [account_id] => 410090];

在这种情况下,我只需要填充[hashed_id][thumbnail].如何使用php?任何人都可以帮助我吗?

不完全确定你在问什么,但是...

如果要访问数组的元素,可以使用以下格式:

$array[$key]

对于您的示例,它将是:$a['hashed_id']

如果要过滤数组,使其仅包含hashed_idthumbnail,则可以执行以下操作:

$filteredArray = [];
$filteredArray['hashed_id'] = $a['hashed_id'];
$filteredArray['thumbnail'] = $a['thumbnail'];

然后你有一个只包含hashed_idthumbnail的数组。

如果

这回答了你的问题,那就太好了;如果不是,你可能想在"过滤"你的数组后澄清它是什么。您的预期结果是什么,等等?

$arr = ['a' => 1, 'b' => 2, 'c' => 3, 'd' => 4];
var_dump(array_filter($arr, function($k) {
    return ($k == 'a') || ($k == 'b');
}, ARRAY_FILTER_USE_KEY));

或使用:

如果您使用的是 PHP>= 5.6,您现在可以设置一个标志来过滤数组键而不是数组值:

$allowed = ['foo', 'bar'];
$filtered = array_filter(
    $my_array,
    function ($key) use ($allowed) {
        return in_array($key, $allowed);
    },
    ARRAY_FILTER_USE_KEY
);