Поиск в массиве
1.
Дмитрий (18.05.2011 / 09:25)
Представим себе такой отрывок кода:
<?php
$z = 54; // то что ищем
$array = array(0, 1, 4, 54); // массив в котором ищем
array_search($z, $array) !== false ? $result='Найдено' : $result='Не найдено';
echo $result . ' <b>' . $z . '</b> из ' . $voteblog;
В таком случает выдаст :
Найдено 54 из 0, 1, 4, 54 - значит все супер, то что надо.
НО если я список цифр возьму в переменную,
$voteblog = '0, 1, 4, 54';
и загоню в массив уже не список цифр, а эту переменную:
<?php
$z = 54; // то что ищем
$voteblog = '0, 1, 4, 54'; / в чем ищем
$array = array($voteblog); // массив
array_search($z, $array) !== false ? $result='Найдено' : $result='Не найдено';
echo $result . ' <b>' . $z . '</b> из ' . $voteblog;
В таком случае не хочет находить, хоть ты тресни.
Нифига не пойму. Мой мир перевернулся!
если я объявил $voteblog = '0, 1, 4, 54';
то
$voteblog и 0, 1, 4, 54 - это ОДНО И ТО ЖЕ
Как это объяснить скрипту???
2.
Александр (18.05.2011 / 09:45)
в данном стучае эту переменную считает строкой. Вставь после объявления строку echo gettype($voteblog)
3.
Дмитрий (18.05.2011 / 09:52)
Подправил первый пост. Тупил интернет, не мог вовремя исправить ошибку в 1 посте.
Добавлено через 02:06 сек.
Все, решение нашел, добавив
$array = explode(",",$array[0]);
Но все равно не могу взять в толк.
ПОЧЕМУ если я объявил $voteblog = '0, 1, 4, 54';
то
$voteblog и 0, 1, 4, 54 - для массива это не одно и то же?
4.
Александр (18.05.2011 / 09:57)
все что берется в одинарные кавычки интерпретатор php считает строкой без лишних размышлений.
Тебе должно было выдать ошибку на функции поиска
5.
Валерий (18.05.2011 / 10:02)
Ты же в массиве не одной строкой задаешь.. А элементами через запятую.. Счего строкой то работать должно? Ты по сути создал массив с одним элементом, который равен твоей строке.
6.
Дмитрий (18.05.2011 / 10:04)
5.
valerik, да, точно, туплю. Я баран.
URL:
https://visavi.net/topics/21636