php sort
どこのサンプルをみてもサンプルデータは決め打ちで実践的じゃない。
$array = array( 'key1' => 'data1', 'key2' => 'data2', 'key3' => 'data3', 'key4' => 'data4');
したら、それはどう書けばいいのよっ!!
wp で 価格データをキーにして ポストIDを並べてみる。
if (have_posts()) { // 入力部 $array=""; while (have_posts()){ the_post(); global $post; // $array[ ソートキー ] = データ; って書き方ね? $array[ usces_the_firstPrice('return') ]=$post->ID; } // ここでソートする。 result には、 sort がうまくいったかいかないか・・・ // ってソート失敗すんのかよ!ってなもんだけど、とりあえず。結果はそのまま配列の中を並び替えるみたい。 $result=ksort($array,SORT_NUMERIC); // 出力部 foreach ($array as $key => $val) { echo $key." ".$val."<br />"; } }1次元配列を並び替えるのは、PHPでもPERLでもストレートにわかるけど、連装配列はね?
ちなみに上のようなものを perl で書くならば。
while( ・・・ ){ push(@array,"key<>data<>"); } foreach(@array){ ($key,$data)=split(/<>/,$_); print $key." ".$data."<br />"; }かな?
これができれば、WPのデータ出力時の並び替えなんて楽勝というか応用が効くよね?
処理速を無視すれば、いちど全部取り込んで、キーで並び替えて出力とかって面倒なときにつか得る技だ。
事実 welcart とかってこのフィールドでは並び替えられるけど、ここでは、このフィールドは存在しない・・・
みたいな面倒なことになる。
welcart で価格で並び替えようとして反日つぶした。
結局この手で逃げることにした。
if (have_posts()) { // 入力部 $array=""; while (have_posts()){ the_post(); global $post; // $array[ ソートキー ] = データ; って書き方ね? $array[ usces_the_firstPrice('return') ]=$post->ID; } // ここでソートする。 result には、 sort がうまくいったかいかないか・・・ // ってソート失敗すんのかよ!ってなもんだけど、とりあえず。結果はそのまま配列の中を並び替えるみたい。 $result=ksort($array,SORT_NUMERIC); // 出力部 foreach ($array as $key => $val) { echo $key." ".$val."<br />"; } // // ↑はそのまま残しとくね? // // 出力部 foreach ($array as $key => $val) { query_posts('&p='.$val); the_post(); : //実際の出力 } }
スポンサーリンク