ох если дадите мне ответ какой я предполагаю , то я ужасно буду сквернословить :< Вопрос: есть массив , в нём повторяющиеся эл-ты , нужно их вывести
спасибо , на это я и расчитывал как я только не гуглил капец извините http://www.google.ru/search?hl=ru&lr=la ... 2&gs_rfai= супир алгоритмы паника Apple , спасибо
спасииибо PHP: <? $num="12 1 50 37 7 11 31 51 4 48 10 12 16 40 33 3 49 36"; $num=explode("\n",$num); while($i<1000){ $i++; $num[$i]=explode(" ",$num[$i]); $num[$i]=sort($num[$i]); } echo $num[2][2]; ?> должно было вывестись 3 16 33 36 40 49 вывелось просто цифра 1 , всё это из-за sort если без sort , то например echo $num[2][4]; выведет 49
PHP: $arr = array("2", "1", "4", "3","5"); sort($arr); echo $arr[1];# выведет 2 это и надо тоесть по моему примеру PHP: <? $num="12 1 50 37 7 11 31 51 4 48 10 12 16 40 33 3 49 36"; $num=explode("\n",$num); while($i<1000){ $i++; $num[$i]=explode(" ",$num[$i]); $num[$i]=sort($num[$i]); } echo $num[2][2]; ?> подробнее PHP: $num=explode("\n",$num); получаем массив и в нём первое значение будет PHP: 12 1 50 37 7 11 дальше PHP: $num[$i]=explode(" ",$num[$i]); получаем массив в массиве тоесть типа (следуем первому шагу цикла) PHP: $num[0]=array("12", "1", "50", "37", "7", "11"); дальше делаем PHP: $num[$i]=sort($num[$i]); тоесть массив $num[0] в котором есть другой массив сортируем и должны получить дальше хочу например вывести цифру 7 из этого уже отсортированного массива PHP: echo $num[0][1]; но вообще ничего не выводится если из этого плана мы уберём PHP: $num[$i]=sort($num[$i]); то при выводе PHP: echo $num[0][2]; успешно получим цифру 50 и вот я интересуюсь в чём причина того что после сорта ничего не выводится =)
siiXth PHP: <?php // Преобразуем все числа в массив $numbers = preg_split('/[ \r\n]+/s', $numbers); ?> Надежней манипуляций с explode
PHP: <?php $numbers = "12 1 50 37 7 11 31 51 4 48 10 12 16 40 33 3 49 36"; $numbers = preg_split('/[ \r\n]+/s', $numbers); // Сортировка sort($numbers); // Смотрим-с echo '<pre>' . print_r($numbers, true) . '</pre>'; ?>
Он не не хочет. Код (Text): $array = sort($array); Сначала происходит сортировка массива $array, после чего массиву $array присваивается триггер результата сортировки - т.е true/false, и $array переходит в булев тип. Ты переопределяет массив - sort НЕ ВОЗВРАЩАЕТ МАССИВ, он возвращает успешность сортировки, т.е bool
вот это я и не знал спасибо за пример мне нужно упорядочить числа конкретно отдельно для каждой строки , а единственный выход который я вижу - создание двойного массива. как это ещё можно сделать ?
всё , сделал двумя массивами как и хотел =) PHP: <? $num=explode("\n",$num); while($i<1000){ $the[$i] = preg_split('/[ \r\n]+/s', $num[$i]); $new[$i]=sort($the[$i]); $i++; } echo '<pre>' . print_r($the, true) . '</pre>'; ?> с explode с пробелом чтото не так так же вроде )
Например вот так: PHP: <?php $numbers = "12 1 50 37 7 11 31 51 4 48 10 12 16 40 33 3 49 36"; $result = array(); foreach(preg_split('/[\r\n]+/s', $numbers) as $arrayLine) { $arrayLine = explode(" ", $arrayLine); // Сортировка (не забываем про строковые пробелы) sort($arrayLine, SORT_NUMERIC); // Добавление в массив foreach($arrayLine as $k => $arrayElement) if(!$arrayElement) unset($arrayLine[$k]); $result[] = $arrayLine; } // Смотрим-с echo '<pre>' . print_r($result, true) . '</pre>'; ?>