【发布时间】:2014-06-18 04:04:45
【问题描述】:
我正在尝试在 foreach 循环中创建一个数组,然后按键对其进行排序。
创建数组的 for each 循环如下所示:
public function index(){
$query=$this->My_model->get_data();
foreach ($query as $row)
{
$data=array(
Array('Points'=>$points,'Name'=>$row['Name'], 'Phone'=>$row['phone']),
);
function cmp ($a, $b) {
return $a['Points'] < $b['Points'] ? 1 : -1;
}
usort($data, "cmp");
print_r($data);
}
}
但这只会返回数组中的第一项。
但是,当我直接输入一些数组项时,如下所示,它可以正常工作并对所有数组项进行排序。
public function index(){
$query=$this->My_model->get_data();
foreach ($query as $row)
{
$data = array (
Array ( 'Points' => 500, 'Name' => 'James Lion' ) ,
Array ( 'Points' => 1200, 'Name' => 'John Smith' ),
Array ( 'Points' => 700, 'Name' => 'Jason Smithsonian' ) );
function cmp ($a, $b) {
return $a['Points'] < $b['Points'] ? 1 : -1;
}
usort($data, "cmp");
print_r($data);
}
}
我该如何解决这个问题,以便第一个 sn-p 中的代码能够像第二个 sn-p 中那样工作?
【问题讨论】:
-
您是否尝试过在 foreach 操作后使用自定义排序? (意思是在foreach之后和之外)
-
@kevinabelita 我之前尝试过,但它只返回最后一项。上面的第二个代码 sn-p 工作正常,数组和排序代码在那个位置,但是当我尝试使用动态代码 int 创建数组时,第一个 sn-p 不起作用,所以我认为它与我在第一个代码 sn-p 的循环中构建数组的方式就是。
标签: php arrays codeigniter loops foreach