Доброго времени суток всем! Появился вопрос... В базе есть поле, со значением home|info|file|news|filesnews|newsinfo Подскажите как мне разобрать эту строку? чтобы это были как бы отдельные слова... И если я сравниваю например так: if($files == 'file') то чтобы доставалось слово file, но если есть слово filesnews, то оно не берется, т.к. это другое слово.
PHP: <?php $old_string = 'home|info|file|news|filesnews|newsinfo'; $string = array(); $string = explode('|', $old_string); ?>
вроде работает, но не до конца... вытаскивается только info Делал так: $old_string = 'home|info|file|news|filesnews|newsinfo'; $string = array(); $string = explode('|', $old_string); if($string[1] == 'file') { echo '1';} Или я не правильно делаю?
$old_string = 'home|info|file|news|filesnews|newsinfo'; $string = array(); $string = explode('|', $old_string); print_r($string); И глянь с кокого индекса начинается массив
print_r выводит мне весь массив вместе с array, хотя мне его вывод там ненужен... без print_r можно еще как нибудь?
функция explode возвращает тебе массив, элементам которого соответствуют индексы (0,1,2,3...). у тебя была строка: 'home|info|file|news|filesnews|newsinfo' получен массив string: индекс | значение элемента 0 | home 1 | info 2 | file 3 | news 4 | filesnews 5 | newsinfo пример: PHP: <? if($string[2] == 'file') { echo '1';} ?> этот вариант сработает.
Код (Text): <?php $a = 'home|info|file|news|filesnews|newsinfo'; $a = explode('|',$a); for($i = 0; $i < count($a); $i++) { echo '<b>'.$i.' = '.$a[$i].'<br />'; } ?>
Nexus PHP: <?php foreach($array as $key => $value) { //TODO: ... } ?> PHP: <?php while(list($key, $value) = each($array)) { //TODO: ... } ?> Оба варианта предпочтительней в большинстве случаев, чем вам выше.
print_r($массив); предназначен для вывода всего массива на экран, так ты можешь узнать в у какого слова какой ключ.. что бы выводить соответствующие данные echo $a['0']; // Выведет home echo $a['1']; // Выведет info echo $a['2']; // Выведет file echo $a['3']; // Выведет news echo $a['4']; // Выведет filesnews echo $a['5']; // Выведет newsinfo а ваще если вы будете каждый возникший вопрос задавать на форуме... то ваш мозг деградирует и вы никогда не поймете и не выучите РНР.. и не сможете решать оч сложные задачи которые тут на форуме вам решать не станут бесплатно низачто =)
Apple тоже верно.. но это не для новичков =) кавычки - привычка... ему всеравно, + мне нравится как это красивей выглядит в редакторе в котором я программлю
И тем самым заставлять РНР делать лишние операции по преобразованию типов? Ассоциативные массивы имеют строковые индексы и РНР приходится при обращении преобразовывать переданный индекс в число и после извлекать значение массива из памяти. Это бессмысленные и неоправданные операции с технической стороны.