Проблема в добавлении $ my_elements внутри массива - PullRequest
1 голос
/ 27 марта 2019

Моя цель - уменьшить количество элементов, совпадающих с числами, из одного массива в другой.

$my_elements = "329,330,331,332,333,334,335,336,337,338,339,340";

$my_array =array(329,330,331,332,333,334,335,336,337,338,339,340,341,342,359);

$to_remove = array($my_elements);

$result = array_diff($my_array,$to_remove);

$str_comp=implode(",", $result);

echo $str_comp;

Я хочу показать этот результат:

341,342,359

Пожалуйста, помогите с этим.

$my_elements = "329,330,331,332,333,334,335,336,337,338,339,340";

$my_array =array(329,330,331,332,333,334,335,336,337,338,339,340,341,342,359);

$to_remove = array($my_elements);

$result = array_diff($my_array,$to_remove);

$str_comp=implode(",", $result);

echo $str_comp;

Ответы [ 3 ]

2 голосов
/ 27 марта 2019

Ваш $to_remove должен быть массивом чисел из строки $my_elements.Однако использование array($my_elements) не делает этого.Вам нужно explode вашей строки, чтобы получить массив чисел:

$my_elements = "329,330,331,332,333,334,335,336,337,338,339,340";

$my_array =array(329,330,331,332,333,334,335,336,337,338,339,340,341,342,359);

// Change is here
$to_remove = explode(',', $my_elements);

$result = array_diff($my_array,$to_remove);

$str_comp=implode(",", $result);

echo $str_comp;
1 голос
/ 27 марта 2019

Итерация по массиву, если значение не существует во втором массиве, вставьте его в новый массив

$data = explode(",",$my_elements)
$finalData = array();

foreach($data as $value){
  if(!in_array($value,$my_array)){
     $finalData[] = $value;
   }
}

$finalData будет иметь то, что вам нужно.

0 голосов
/ 27 марта 2019

my_elements должен быть массивом

$my_elements = explode(',',"329,330,331,332,333,334,335,336,337,338,339,340");

Замените ваш код следующим: -

$my_elements = explode(',',"329,330,331,332,333,334,335,336,337,338,339,340");

$my_array =array(329,330,331,332,333,334,335,336,337,338,339,340,341,342,359);


$result = array_diff($my_array,$my_elements);

$str_comp=implode(",", $result);

echo $str_comp;

Выход: -

341,342,359
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...