0

私は次のように値を配列にプッシュしようとしています:

$scoreValues[$i][] = $percent ;
$scoreValues[$i][] = '<span id="item'.$i.'" class="suggestElement" data-entityid="'.$row['id'].'" data-match="'.$percent.'">'.rawurldecode($row['name']).'</span>' ;

基本的に$percentを文字列にリンクしたいので、次のような出力が得られます。

array (0 > array('46.5', '<span etc etc')

次に、パーセントサブ配列で並べ替えて、スコアが最も高い文字列を一番上に表示するようにします。

4

3 に答える 3

1

2行目では、2番目の配列のインデックスを指定する必要があります。

$scoreValues[$i][$j] = '<span id="item'.$i.'" class="suggestElement" data-entityid="'.$row['id'].'" data-match="'.$percent.'">'.rawurldecode($row['name']).'</span>' ;

したがって、基本的に2つのカウンターが必要です。1つは外部配列($ i)用で、もう1つは内部配列($ j)用です。

編集:

あなたは私に質問と少し混乱させました、あなたが必要としているのは多次元配列ではなく、むしろ単純な配列のようです:

$scoreValues[$percent] = '<span id="item'.$i.'" class="suggestElement" data-entityid="'.$row['id'].'" data-match="'.$percent.'">'.rawurldecode($row['name']).'</span>' ;

$percentこれは一意である必要があることに注意してください。

于 2012-07-17T08:30:16.290 に答える
1

最も簡単な方法は、2つの配列を使用することです。

$percents[$i] = $percent;
$scores[$i] = "<span....>");

または1つの配列ですが、このようにインデックスが付けられます

$data = new arrray('percents' => array(), 'scores' => array());
$data['percents'][$i] = $percent;
$data['scores'][$i] = "<span....>");

これが完了したら、次を使用して配列を並べ替えますarray_multisort

array_multisort(
   $data['percents'], SORT_DESC,
   $data['scores']);
于 2012-07-17T08:31:14.657 に答える
0

これを試して:

$val = array(
    'percent' => $percent,
    'html' => '<span id="item' . $i .
              '" class="suggestElement" data-entityid="'.$row['id'].
              '" data-match="'.$percent.'">'.rawurldecode($row['name']).
              '</span>'
);
// This just pushes it onto the end of the array
$scoreValues[] = $val ;
// Or you can insert it at an explicit location
//$scoreValues[$i] = $val;
于 2012-07-17T08:37:40.147 に答える