Фрагмент массива ($ data, 1, 2) какова эквивалентность для моего случая?

#php #arrays

#php #массивы

Вопрос:

Код:

 $data = array("vanilla", "strawberry", "mango", "peaches");
print_r(array_slice($data, 1, 2));


Output:
Array
(
[0] => strawberry
[1] => mango
)
  

в моем случае :

 $data = array("vanilla", "strawberry", "mango", "peaches");
$sub_set_data = array( "strawberry", "mango");
  

результатом будет оставшийся массив:
array("vanilla", "peaches");

Редактировать:

NOT array diff it look like the minus operator 7-3 = 4 or $C = $A-$B

концепция python:

 >>> A           = [6, 7, 8, 9, 10, 11, 12]
>>> subset_of_A  = [6, 9, 12];
>>> set(A) - set(subset_of_A)
set([8, 10, 11, 7])
>>> 
  

Что я могу сделать для этого случая?

Комментарии:

1. Непонятно, о чем вы просите, потому что array_diff похоже, это работает для вашего примера.

2. Я обновил вопросы.концепция python

3. @IEnAk, ты пробовал array_diff ? Я думаю, что это делает именно то, что вы хотите: возвращает все в A, чего нет в подмножестве A.

4. приемлемо, но для моего случая $sub_set_data его элементы являются подмножеством $ data . Все $ sub_set_data в $data.

5. @IEnAk: Для множеств нет оператора «минус», но разница в двух множествах (здесь представленных array_diff() на двух массивах) — это именно то, что вы ищете. Если нет, вы должны описать, в чем дело с этим.

Ответ №1:

Похоже, вам нужно array_diff

 <?php
$array1 = array("a" => "green", "red", "blue", "red");
$array2 = array("b" => "green", "yellow", "red");
$result = array_diff($array1, $array2);

print_r($result);
?>
  

Результат:

 Array
(
    [1] => blue
)
  

http://www.php.net/manual/en/function.array-diff.php