Добрый день, ребят. Есть массив, назовем его UserArticleList
, вот его вардамп:
array(2) {
[0]=> string(1) "1"
[1]=> string(1) "2"
}
Есть такой кусочек кода:
foreach($ArticleList as $article){
if(array_search($article['id'],$UserArticleList)){
continue;
//Продолжаем обрабатывать запись
}
Здесь циклом перебираются все записи бд($ArticleListas
). Если id
текущей записи есть в массиве, то переходим к следующей итерации цикла. И все должно бы работать, но array_search
находит только элемент со значением 2
. Почему?)
В доках написано, что:
Внимание Эта функция может возвращать как boolean FALSE, так и не-boolean значение, которое приводится к FALSE. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.
Соответственно, когда попадается первый элемент, возвращается ключ под номером 0. И в виду неявного преобразования 0 в булев тип, получается конструкция вот такого вида:
if (false) { ....
вот он и не находит ничего.
Следовательно. Надо писать либо так:
if(array_search($article['id'],$UserArticleList) !== false){...
либо использовать in_array
:
if(in_array($article['id'],$UserArticleList)){...
foreach($ArticleList as $article){
if(in_array($article['id'],$UserArticleList)){
do some...
}
}
Если также необходимо сравнивать типы, добавьте true:
in_array($article['id'],$UserArticleList,true)
А что вам мешает использовать in_array
?
<?php
foreach($ArticleList as $article){
if(in_array($article['id'],$UserArticleList)){
continue;
//Продолжаем обрабатывать запись
}
?>
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
В приложении вызываю окно отправки формы, пытаюсь передать в нее контроллер, но он не передается, в чем ошибка?
Есть скрипт помогающий оформить код при редактировании https://jsfiddlenet/L5qhzdh7/
Как получить this класса, внутри метода класса, не прибегая к bind? Тк в этом методе нужен свой this