php多维数组排序与操作函数
PHP多维数组排序与操作函数,代码如下:
<?php
function arraycd($arr) {
static $res_arr = array();
if (is_array($arr)) {
foreach ($arr as $key => $val) {
if (is_array($val)) {
arraycd($val);
} else {
$res_arr[] = $val;
}
}
} elseif (is_string($arr)) {
$res_arr[] = $arr;
}
return implode(",", $res_arr);
}
$fruits = array(
"fruits" => array(
"a" => "orange",
"b" => "banana",
"c" => "apple"
) ,
"numbers" => array(
1,
2,
3,
4,
5,
6
) ,
"holes" => array(
"first",
5 => "second",
"third"
)
);
$strayy = arraycd($fruits);
var_dump($strayy);
?>看一个多维数组排序,代码如下:
<?php
function sortdata($data, $col, $order) {
if (count($data)) $temp_array[key($data) ] = array_shift($data);
foreach ($data as $key => $val) {
$offset = 0;
$found = false;
foreach ($temp_array as $tmp_key => $tmp_val) {
if (!$found and strtolower($val[$col]) > strtolower($tmp_val[$col])) {
$temp_array = array_merge((array)array_slice($temp_array, 0, $offset) , array(
$key => $val
) , array_slice($temp_array, $offset));
$found = true;
}
$offset++;
}
if (!$found) {
$temp_array = array_merge($temp_array, array(
$key => $val
));
}
}
if (strtolower($order) == "asc") {
$array = array_reverse($temp_array);
} else {
$array = $temp_array;
}
return $array;
}
?>主函数
<?php $data = array( array( 'name' => 'alice', 'key' => '2fc4ab3d639e5400efdfc73bc27e83f1', 'age' => 20 ) , array( 'name' => 'claudia', 'key' => '831c2b79c1f19af39c7e3321e11e5f5e', 'age' => 18 ) , array( 'name' => 'beatrice', 'key' => '6f8512a2066b8f35a27a495ce1228c76', 'age' => 100 ) , array( 'name' => 'denise', 'age' => 25, 'key' => 'ef6de3b178bf9f69a9fef72e4ee7bbe9' ) ); $arr1 = sortdata($data, "name", "asc"); echo "<pre>"; var_dump($arr1); echo "</pre>"; $arr2 = sortdata($data, "age", "desc"); echo "<pre>"; var_dump($arr2); echo "</pre>"; ?>
本文地址:http://www.phprm.com/shuzu/fs4198.html
转载随意,但请附上文章地址:-)