У меня, возможно, простой запрос, но нигде не удалось найти точного решения.
Существует строка с разделителями-запятыми, например 1,3 , и массив со значениями, такими как 1,3,2 ИЛИ 3,1,4 . Мне нужна функция, которая, когда я пытаюсь найти эту строку в массиве, возвращает TRUE для обеих записей, поскольку числа 1 и 3 существуют в обоих значениях массива, но только в другом порядке.
Я пытался использовать array_search
, strpos
и даже explode
для первого создания строки в массиве, а затем array_intersect
для пересечения обоих массивов в надежде получить положительное совпадение, но всегда возвращает только массив со значениями 1,3,2, а не 3,1,4.
Любые предложения или указатели будут чрезвычайно полезны.
Заранее большое спасибо.
============================
PS: Вот мой код
//Enter your code here, enjoy!
$st_array = array();
$st_data1['id'] = 1;
$st_data1['title'] = 'Jane doe';
$st_data1['disk'] = '1,3,2';
array_push($st_array, $st_data1);
$rc_disk_id = '1,3';
$st_data2['id'] = 2;
$st_data2['title'] = 'Jane Smith';
$st_data2['disk'] = '3,1,4';
array_push($st_array, $st_data2);
foreach($st_array as $st_data) {
$rc_disk_ids = explode(",",$rc_disk_id);
$match = array_intersect($rc_disk_ids, $st_data);
if (!empty($match)) {
echo "\nFound\n";
print_r($st_data);
}
else {
echo "Nope!";
}
}