如何在PHP中构建二维数组?

时间:2012-07-17 08:23:09

标签: php arrays multidimensional-array

我正在尝试将值推送到数组上,如下所示:

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

我基本上想把$百分比与字符串链接在一起,所以我得到一个输出:

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

然后我计划按百分比子数组进行排序,这样我的得分字符串最高。

3 个答案:

答案 0 :(得分:1)

在第二行中,您需要指定第二个数组的索引:

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

所以你基本上需要2个计数器,一个用于外部数组($ i),另一个用于内部数组($ j)。

修改

你让我对这个问题感到困惑,看起来你需要的不是一个多维数组,而是一个简单的数组:

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

请注意,这需要$percent是唯一的。

答案 1 :(得分:1)

最简单的方法是使用两个数组:

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

或者一个数组,但是像这样编入索引

$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']);

答案 2 :(得分: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;