есть файл base.txt
250:||:2500:||:vesh2:||:1:||:CP-250:||:
250:||:2500:||:vesh2:||:1:||:LK-250:||:
250:||:2500:||:vesh2:||:1:||:JH-250:||:
250:||:2500:||:vesh2:||:1:||:AB-250:||:
250:||:2500:||:vesh2:||:1:||:XC-250:||:
Делаю:
//Загоняю в массив
$file = "base.txt";
//Подсчёт строк
$count_str = count($file);
//Вывожу все строки
for($i = 0; $i<=$count_str; $i++){
echo $file[$i]."<br/>";
}
Получаю вывод:
250:||:2500:||:vesh2:||:1:||:CP-250:||:
250:||:2500:||:vesh2:||:1:||:LK-250:||:
250:||:2500:||:vesh2:||:1:||:JH-250:||:
250:||:2500:||:vesh2:||:1:||:AB-250:||:
250:||:2500:||:vesh2:||:1:||:XC-250:||:
А необходимость - при выводе отсортировать строки по $file[$i][4] (т.е. по CP-250, LK-250)
В алфавитном порядке.
Спустя 22 минуты, 5 секунд (30.01.2011 - 22:18) Игорь_Vasinsky написал(а):
Ау..аушиньки
Спустя 14 минут, 57 секунд (30.01.2011 - 22:33) twin написал(а):
ну попробуй так
Спустя 15 минут, 44 секунды (30.01.2011 - 22:49) Игорь_Vasinsky написал(а):
честно говоря - !!!нихрена я не понял, но попробовал так и обломался:
Может какие то ключи есть, хотя в мануале не описано, как то я мутно сравниваю эоементы массивов, котоые являются строками а не числами
Ни чё не понимаю
//Загоняю в массив
$file = "base.txt";
//Подсчёт строк
$count_str = count($file);
function compare($x, $y)
{
if ( $х[4] == $у[4] )
return 0;
else if ( $x[4] < $у[4] )
return -1;
else
return 1;
}
usort($file, compare);
//Вывожу все строки
for($i = 0; $i<=$count_str; $i++){
echo $file[$i]."<br/>";
}
Может какие то ключи есть, хотя в мануале не описано, как то я мутно сравниваю эоементы массивов, котоые являются строками а не числами
$x[4] < $у[4]
Ни чё не понимаю
Спустя 19 минут, 21 секунда (30.01.2011 - 23:08) Игорь_Vasinsky написал(а):
Можно по меньше вариант использовать:
файл со строками:
121 :: qeqw
34::dfgd
645::nvcj
34::aal
файл со строками:
121 :: qeqw
34::dfgd
645::nvcj
34::aal
Спустя 21 минута, 6 секунд (30.01.2011 - 23:29) Игорь_Vasinsky написал(а):
Ну так как.
Спустя 2 минуты, 16 секунд (30.01.2011 - 23:32) Winston написал(а):
Пока вот что вышло
Завтра ещё могу помочь, а сейчас уже нужно срочно отключатся.
$file = file("base.txt");
$str = count($file);
$arr = Array();
for($i = 0; $i < $str; $i++)
{
echo $arr[] = substr($file[$i], 29, 6) . '<br/>';
}
sort($arr);
for($j = 0; $j < $str; $j++)
{
echo $file[$j].' --> '.$arr[$j];
}
Завтра ещё могу помочь, а сейчас уже нужно срочно отключатся.
Спустя 14 минут, 13 секунд (30.01.2011 - 23:46) Игорь_Vasinsky написал(а):
что то странное выдал твой пример.
Спустя 1 час, 43 минуты, 6 секунд (31.01.2011 - 01:29) Игорь_Vasinsky написал(а):
Вопрос решён. Спасибо за участие.
1. Создать новый двумерный массив:
2. примеить usort с пользовательской функцией.
1. Создать новый двумерный массив:
for($i=0; $i<=$total; $i++){
$data = explode(":||:", $file[$i]);
//$data = array_reverse($data);
$sorted[$i] = array(
$data[0],
$data[1],
$data[2],
$data[3],
$data[4]
);
}
2. примеить usort с пользовательской функцией.
function compare($x, $y)
{
if ($x[4] == $y[4]){
return 0;
}
else if ($x[4] < $y [4])
return -1;
else
return 1;
}
usort($sorted, 'compare');
Спустя 37 минут, 59 секунд (31.01.2011 - 02:07) Игорь_Vasinsky написал(а):
Twin как всегда вывел н нужный путь, не знаю специально иили нет
Фраза была: У тебя нет массива- есть файл. Вот это и навело.
Фраза была: У тебя нет массива- есть файл. Вот это и навело.
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker