请问这串代码 $values[$k]= isset($v[$key]) ? $v[$key] : ''; 中的 $values[$k] 和 $v[$key] 是什么意思。麻烦了各位大神。附上源代码:<?php
function test($array=array(),$key='',$paixu=true){
$result=array();
foreach($array as $k => $v){
$values[$k]= isset($v[$key]) ? $v[$key] : '';
}
unset($v);
$paixu ? asort($values) : arsort($values);
foreach ($values as $k => $v){
$result[$k] = $array[$k];
}
return $result;
}
$data = array(
array('post_id'=>1,'title'=>'如何学好PHP','reply_num'=>582),
array('post_id'=>2,'title'=>'PHP数组常用函数汇总','reply_num'=>182),
array('post_id'=>3,'title'=>'PHP字符串常用函数汇总','reply_num'=>982),
); $paixuhou=test($data,'reply_num',true);
echo "<pre>";
print_r($paixuhou);
?>
function test($array=array(),$key='',$paixu=true){
$result=array();
foreach($array as $k => $v){
$values[$k]= isset($v[$key]) ? $v[$key] : '';
}
unset($v);
$paixu ? asort($values) : arsort($values);
foreach ($values as $k => $v){
$result[$k] = $array[$k];
}
return $result;
}
$data = array(
array('post_id'=>1,'title'=>'如何学好PHP','reply_num'=>582),
array('post_id'=>2,'title'=>'PHP数组常用函数汇总','reply_num'=>182),
array('post_id'=>3,'title'=>'PHP字符串常用函数汇总','reply_num'=>982),
); $paixuhou=test($data,'reply_num',true);
echo "<pre>";
print_r($paixuhou);
?>
test($data,'reply_num',true) 帖子按照回复数量'reply_num'升序排列。<?php
function test($array=array(),$key='',$paixu=true)
{
$result=array(); //定义最终返回的数组 foreach($array as $k => $v){
$values[$k]= isset($v[$key]) ? $v[$key] : '';
}
/**
* 第一循环
*
* $k = 0
* $v = array('post_id'=>1,'title'=>'如何学好PHP','reply_num'=>582),
*
* $key = reply_num
* $v[$key] = 582
*
* $values[0] = 582
*
* 最终结果
* $values = [0=>582 , 1=>182 , 2=>982]
*/
unset($v); $paixu ? asort($values) : arsort($values);
/**
* sort()函数,按照键值排序,键名将会被重置,不保持关联关系
*
* asort() a=assoc关联 sort排序 关联升序:关联排序即按照键值升序排序,保持键名=>键值的对应关系
* arsort() r=reserve反转 关联降序
*
* 最终结果
* $values = [1=>182 , 0=>582 , 2=>982]
*/ foreach ($values as $k => $v){
$result[$k] = $array[$k];
}
/*
最终结果
$result = array(
array('post_id'=>2,'title'=>'PHP数组常用函数汇总','reply_num'=>182),
array('post_id'=>1,'title'=>'如何学好PHP','reply_num'=>582),
array('post_id'=>3,'title'=>'PHP字符串常用函数汇总','reply_num'=>982),
);*/ return $result;
}
foreach ($values as $k => $v){
$result[$k] = $array[$k];
}$result[$k] 这里 $k应该没必要,我觉的应该去掉,$result[] = $array[$k];才对。
我想问一下,变量后面加一个中括号是什么意思。如$v[$key] 和 $values[$k] 像这样的。