Всем привет! Нужно вывести на экран только первые 10 символов из массива. Я узнал количество символов в строке : $nc = strlen("$datafile[$i]"); $nc теперь содержит значение равное 19, то есть 19 символов. как теперь вывести только первые 10 символов из 19?
Вывод осуществляется операторами и функциями echo, print, print_r(), var_dump(). Для того чтобы взять только 10ть символов из строки - откройте для себя функции работы со строками http://ua.php.net/manual/en/ref.strings.php
Почему же? PHP: <?php $chars = "Hello, World"; for($i = 0; $i < strlen($chars); $i++) { echo $chars[$i]; } ?> Чем не массив?
Код (Text): $array = (1,2,3); $string = '123'; var_dump($array); echo "<br>"; var_dump($string); echo "<br>"; print_r($array); echo "<br>"; print_r($string); echo "<br>"; echo (int)is_array($array); echo "<br>"; echo (int)is_array($string); echo "<br>"; echo (int)is_string($array); echo "<br>"; echo (int)is_string($string); strlen($array); последнее вообще выдаст ошибку. вопрос думаю снят? 8)
Нет. Ей можно манипулировать не хуже, чем массивом. Я не вижу причин для обратного утверждения, не смотря на тип переменной.
До тех пор пока к символам можно обращаться по его индексу, она останется массивом символов. Само определение - масив символов - верно для любой строки.
Apple 1. твоим языком. тип переменной строка - не массив. тип переменной массив - не строка. ты перевод string и array знаешь? даже близко нет. массив нельзя конкатировать (хз как слово пишется) элементу (символу) строки нельзя присвоить ничего, кроме символа. элементу массива можно присвоить что угодно. это 2 совершенно разные вещи которые в частном случае ведут себя похоже
видимо ты лингвист по русски может оно и так, я же говорю в терминах php мы не на лингвистическом и не на филосовском сайте а в терминах php так уж принято массивом называть перевод англиского array, а строкой перевод англиского string с точки зрения php array != string поэтому я и говорю, что массив != строка
просьба модераторов вынести это в отдельный топик интересный холивар может получиться )) если конечно кто-то осмелится встать на сторону Apple ;-)
SDR Мужик, я не первый год программирую на РНР и кое что всё-таки знаю. Не надо мне объяснять элементарные вещи, любая строка - это массив символов по своей сути. Знаешь, как РНР размещает строки в памяти? Полагаю, знаешь. То, что у этой переменной другой тип, никак не меняет суть любой строки, даже написанной на бумаге. Из неё можно вырвать любой символ, заменить или удалить. Удаление всей строки можно произвести её зачеркиванием или, что тоже самое, вычеркиванием каждого из символов. Так что суть остается такова, что любая строка всё равно массив символов.
оно и видно, в наклонностях короче ладно. убедил. поправлюсь. строка - не является типом массив. так устроит?
Да, о чем тут холиварить? PHP это не C. Apple, просто очередной кодер с претензиями. Запустите PHP: $z='abcde'; var_dump($z); $z[] = 'kkk'; var_dump($z); и PHP: $a=array('a', 'b', 'c', 'd', 'e'); var_dump($a); $a[] = 'kkk'; var_dump($a); И ощутите разницу... Строка это не массив. Все. P.S. раньше людей называли дураками, сейчас с говорят человек с гуманитарным складом ума. Филологи блин...
Simpliest Ты мне ещё долго будешь таблицы типов показывать и объяснять то, что я без тебя знаю? =)) Лучше расскажи что-нибудь новенькое, что подтвердит твои слова. А кидаться фразами все могут, но пока никто не опроверг, что набор однотипных данных, собранных воедино, представляет собой массив, где к каждому его элементу можно получить доступ напрямую, то отрицание факта бесполезно. И повторяю: не надо мне типы РНР в нос сувать, читать внимательней надо.
Лана, это можно бесконечно доказывать. Строка в РНР имеет свой тип, массив — свой, но понятие (определение) остается для любого набора однотипных элементов. Предлагаю остановиться на том, что сейчас имеем.