- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有 4 个数组并使用 array_multisort 将它们相对于彼此同时排序。
问题是,在第一个数组中,可能有空值,我想将它们放在末尾,而不是开头。
示例:http://codepad.org/V6TjCsS5
有没有办法:
最佳答案
不幸的是,您提出的所有方法都不可行,这意味着您必须退后一步并寻找替代方案。我假设你想要一个正常的升序排序,除了空元素(你是“最小”)需要被视为“最大”的明确异常(exception)。
选项 1:排序后手动重新排列元素
做你的array_multisort
像往常一样,然后进行您需要的修改:
// $arr1, $arr2 etc have been sorted with array_multisort
while(reset($arr1) == '') {
$k = key($arr1);
unset($arr1[$k]); // remove empty element from beginning of array
$arr1[$k] = ''; // add it to end of array
// and now do the same for $arr2
$v = reset($arr2);
$k = key($arr2);
unset($arr2[$k]);
$arr2[$k] = $v;
// the same for $arr3, etc
}
function shift_and_push(&$arr) {
$v = reset($arr);
$k = key($arr);
unset($arr[$k]);
$arr[$k] = $v;
}
usort
usort
指定比较函数。 :
$allArrays = array_map(function() { return func_get_args(); },
$array1, $array2 /* , as many arrays as you want */);
// writing this as a free function so that it looks presentable
function cmp($row1, $row2) {
// $row1[0] is the item in your first array, etc
if($row1[0] == $row2[0]) {
return 0;
}
else if($row1[0] == '') {
return 1;
}
else if($row2[0] == '') {
return -1;
}
return $row1[0] < $row2[0] ? -1 : 1;
}
usort($allArrays, "cmp");
$array1
中的内容, 第二个元素是
$array2
中的元素等。通过将这些元素放置在“行”中,我们设法使所有原始数组之间的排序顺序保持同步。
关于php - 使用 array_multisort() 并将空值放在最后,而不是第一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9767398/
我正在尝试使用 array_multisort 函数对多维数组进行排序 我期望多维数组使用 $sort 中的值对自身进行排序。$sort 与我的多维数组的体积元素有关。 我希望名称元素按以下顺序排列:
我第一次尝试使用 array_multisort 函数,但它没有像我预期的那样工作。我真的希望有人能帮助我。这是我的问题: 我确实有一个包含 7 列的表格。我想通过单击列名对其中的 4 个进行排序。我
这个问题在这里已经有了答案: How can I sort arrays and data in PHP? (14 个答案) 关闭 6 年前。 我可以对多维数组进行排序,但不保留数字索引关联。 如何
我使用 array_multisort 完成了一些任务功能。在编写脚本的过程中,我执行了一个var_dump,并根据 PHP 版本得到了不同的 $mainArray 结果。这是代码: $mainArr
这个问题在这里已经有了答案: array_multisort with maintaining numeric index association [duplicate] (2 个答案) 关闭 6
这个问题在这里已经有了答案: How can I sort arrays and data in PHP? (14 个答案) 关闭 6 年前。 找不到正确的函数来对多维数组进行排序,如下所示: Ar
这是我的代码: $numbers = array(10, 100, 100, 0); $names = array("Alex", "Jane", "Amanda", "Debra"); array_
php 中array_multisort() 函数可以用来一次对多个数组进行排序,或者根据某一维或多维对多维数组进行排序。本文章向大家讲解array_multisort函数的使用方法。  
例如像下面的数组: 复制代码 代码如下: $users = array( array('name' => 'tom',
1、先看最简单的情况。有两个数组: $arr1 = array(1,9,5); $arr2 = array(6,2,4); array_multisort($arr1,$arr2); print_
函数 bool array_multisort ( array &$arr [, mixed $arg = SORT_ASC [, mixed $arg = SORT_REGULAR [,
我有一个数组: $arr = [ [ "t1" => ["sum" => 3], "t2" => ["sum"
这个问题已经有答案了: Sort array using array_multisort() with dynamic number of arguments/parameters/rules/dat
我在理解 array_multisort 时遇到一些问题 看看当两个值相同时它是如何排序的: $a1=array("Dog","Dog","Cat"); $a2=array("Pluto","Fi
尝试按 memnum 升序对下面的数组进行排序,但我有点困惑哪个更好用……usort 还是 array_multisort?我在想 usort 因为它是多维的?有没有人有这方面的例子? Array (
我有以下数组: $array = array( 'note' => array(), 'year' => array('2011','2010', '2012'),
我正在使用 yii 框架并使用 CArrayDataProvider 因为我的数据提供者包含 3 个表。但是如果我在其中使用 Sort。 $sort = new CSort; $sor
我有 4 个数组并使用 array_multisort 将它们相对于彼此同时排序。 问题是,在第一个数组中,可能有空值,我想将它们放在末尾,而不是开头。 示例:http://codepad.org/V
我正在尝试使用 array_multisort() 在其子数组的基础上对数组进行排序功能...... 在尝试的同时; print_r($mar); echo ''; $arr2 = array_mul
我正在尝试比较 php 中的 2 个 csv 文件,方法是将它们导入多维数组并使用 array_diff 函数找出差异。 我使用的方法是 1) 获取预期 csv 的每条记录并转储到 arr1 2) 获
我是一名优秀的程序员,十分优秀!