как удалить элементы со значением массива умножения? - PullRequest
1 голос
/ 01 ноября 2019

У меня есть один ассоциативный массив умножения, где у меня есть четыре значения. Ниже у меня есть массив:

Array
(
    [0] => Array
        (
            [name] => Morning Ride
            [distance] => 1723.3
            [type] => Ride
            [id] => 2011096935
        )

[1] => Array
    (
        [name] => Evening Walk
        [distance] => 3165.5
        [type] => Walk
        [id] => 2008414015
    )

[2] => Array
    (
        [name] => Morning walk
        [distance] => 2262.9
        [type] => Walk
        [id] => 1963423515
    )

[3] => Array
    (
        [name] => Evening Runining
        [distance] => 531.2
        [type] => Run
        [id] => 1951087309
    )
)

В массиве есть значение «тип», где один Ride, один Run и два для Walk. Теперь меня беспокоит то, что я хочу только значение типа Walk в массиве, а не все значения. Итак, как я могу это сделать.

Я использую одну функцию для этого:

function removeElementWithValue($array, $key, $value){
     foreach($array as $subKey => $subArray){
          if($subArray[$key] == $value){
               unset($array[$subKey]);
          }
     }
     return $array;
}
$activities = removeElementWithValue($stravaactvity, "type", 'Run');

это только удаляет значение типа моего прогона, но не Ride one.

Ответы [ 2 ]

1 голос
/ 01 ноября 2019

Если вы хотите сохранить только Walk, вы также можете использовать array_filter вместо удаления других.

$res = array_filter($arrays, function($x) {
    return $x["type"] === "Walk";
});

print_r($res);

См. php demo

0 голосов
/ 01 ноября 2019

Просто снова запустите свою функцию с другим значением.

function removeElementWithValue($array, $key, $value){
     foreach($array as $subKey => $subArray){
          if($subArray[$key] == $value){
               unset($array[$subKey]);
          }
     }
     return $array;
}
$activities = removeElementWithValue($stravaactvity, "type", 'Run');
$activities = removeElementWithValue($activities, "type", 'Ride');
...