Поиск в массиве

Печать RSS
40

Автор
Голубые штаны
0
Представим себе такой отрывок кода:
<?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 - это ОДНО И ТО ЖЕ
Как это объяснить скрипту???
Изменил: Дмитрий (18.05.2011 / 09:51)

Чатланин
0
в данном стучае эту переменную считает строкой. Вставь после объявления строку echo gettype($voteblog)
Автор
Голубые штаны
0
Подправил первый пост. Тупил интернет, не мог вовремя исправить ошибку в 1 посте.

Добавлено через 02:06 сек.
Все, решение нашел, добавив
$array = explode(",",$array[0]);

Но все равно не могу взять в толк.
ПОЧЕМУ если я объявил $voteblog = '0, 1, 4, 54';
то
$voteblog и 0, 1, 4, 54 - для массива это не одно и то же?

Чатланин
0
все что берется в одинарные кавычки интерпретатор php считает строкой без лишних размышлений.
Тебе должно было выдать ошибку на функции поиска
Изменил: Александр (18.05.2011 / 09:59)
В

Чатланин
0
Ты же в массиве не одной строкой задаешь.. А элементами через запятую.. Счего строкой то работать должно? Ты по сути создал массив с одним элементом, который равен твоей строке.
Автор
Голубые штаны
0
5. valerik, да, точно, туплю. Я баран.
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск