Здрасти хора,
В момента дълбая дъното! Не мога да разбера, защо тъпия интерпретатор не желае да ми сортира масив по стойностите без да трие ключовете.
Говоря за асоциативен масив. Ето това ми е масива:
$masiv = array( "001" => "krushi",
"002" => "slivi",
"003" => "dinia",
"003" => "pupesh",
"004" => "kivi",
"005" => "limon"
); |
Във Perl всичко си се получава, но в PHP не мога да схвана как да сортирам масива, защото когато използвам sort($masiv) ми изтрива ключовете 001, 002 .. и т.н.
Ако използвам ksort($masiv) - PHP запазва съдържанието на масива без промяна, но ключовете и така са ми сортирани, така, че не ме устройва. Има един вариант, който би ме накарал да си прегриза сухожилията на коляното - да сменя местата на ключовете и стойностите.
Ето как го дебъгвам:
<?php
$masiv = array( "001" => "krushi",
"002" => "slivi",
"003" => "dinia",
"003" => "pupesh",
"004" => "kivi",
"005" => "limon"
);
foreach ($masiv as $key => $value){
echo $key." : ".$value."<br>n";
}
/* Изход:
001 : krushi<br>
002 : slivi<br>
003 : pupesh<br>
004 : kivi<br>
005 : limon<br>
*/
ksort($masiv);
echo "<br>nn";
foreach ($masiv as $key => $value){
echo $key." : ".$value."<br>n";
}
/* Изход:
001 : krushi<br>
002 : slivi<br>
003 : pupesh<br>
004 : kivi<br>
005 : limon<br>
*/
sort($masiv);
echo "<br>nn";
foreach ($masiv as $key => $value){
echo $key." : ".$value."<br>n";
}
/* Изход:
0 : kivi<br>
1 : krushi<br>
2 : limon<br>
3 : pupesh<br>
4 : slivi<br>
*/
?> |
Разбира се пробвах и print_r() - все тая - грешката си я има! От къде на къде ще ми променя съдържанието на масива?! Fu*k..
Да не би проблема да е в Windows интерпретатора? Всъщност това бъг ли е? Надявах се, че поне в 5-а версия на PHP ситуацията да е малко по-свежа, но уви! Май за сериозните проекти Perl си остава най-добрия избор.. или греша? Някой сблъсквал ли се е с подобен бъг на интерпретатора и как го е решил?
Много ще съм МНОГО благодарен за каквито и да било насоки за размисъл!