我有这种阵列
array(5) {
[0]=>
array(5) {
[0]=>
string(7) "jannala"
[1]=>
string(10) "2009-11-16"
[2]=>
string(29) "
<p>Jotain mukavaa.</p>
"
[3]=>
int(12)
[4]=>
int(1270929600)
}
[1]=>
array(5) {
[0]=>
string(7) "jannala"
[1]=>
string(10) "2009-11-16"
[2]=>
string(51) "
<p>Saapumiserä II/09 astuu palvelukseen</p>
"
[3]=>
int(11)
[4]=>
int(1270929600)
}
...
}
Run Code Online (Sandbox Code Playgroud)
我需要做的是根据数组的[x] [4](unix时间戳值)对数组进行排序.我怎么做到这一点?
我有mysql表即
id | a | b | c | d |ud_id 1 | 20| 8 | 45| 18| 1
现在我想在php中检索该数据对数组进行排序并找到此示例中的最高字段(c = 45)
$query="SELECT `a`, `b`, `c`, `d` from table where ud_id=1"; $rs=mysql_query($query) or die(mysql_error()); $row=mysql_fetch_array($rs);
但是我如何对这个关联数组进行排序并找到最高的关键字.
我有一个这样的阵列:
$currentTerm = array(
'name' => $term->name,
'weight' => $term->weight
);
Run Code Online (Sandbox Code Playgroud)
我想用weight
密钥对整个数组进行排序.我无法弄清楚如何实现这一目标.有什么想法或者我应该为此编写自定义功能吗?
PS一些重量可以相同; 所以将它们存储为钥匙不是一种选择.并且它是多维的,具有子键,以与上面相同的方式递归填充.
如何让这个php冒泡排序代码更好或更有效?
// bubble sort for $AR
for($i = count($AR)-1 ; $i <= 1; $i--)
for($j = 0; $j < $i; $j++) {
if($AR[$j] > $AR[$j+1]) {
$t = $AR[$j];
$AR[$j] = $AR[$j+1];
$AR[$j+1] = $t;
} //if
} //for j
Run Code Online (Sandbox Code Playgroud) 我只想对数组中那些不是 0 的值进行排序,并且所有 0 值键都应该在底部。所以例如如果我们的数组是这样的 -
array
{
[0]=>4
[1]=>0
[2]=>2
[3]=>0
[4]=>3
}
Run Code Online (Sandbox Code Playgroud)
所以排序的数组我应该像下面这样
array
{
[2]=>2
[4]=>3
[0]=>4
[1]=>0
[3]=>0
}
Run Code Online (Sandbox Code Playgroud) 假设您有一个如下所示的数组:
$myArray []= array('firstname' => 'John' , 'lastname'=> 'Johnson');
$myArray []= array('firstname' => 'Adam' , 'lastname'=> 'Tyson');
$myArray []= array('firstname' => 'Mike' , 'lastname'=> 'Robinson');
$myArray []= array('firstname' => 'David' , 'lastname'=> 'Jackson');
Run Code Online (Sandbox Code Playgroud)
你如何根据姓氏对$ myArray进行排序?
我正在尝试使用多维数组执行与mySQL查询"SELECT*FROM table ORDER BY field1,field2,..."相同的操作:
$Test = array(
array("a"=>"004", "n"=>"03"),
array("a"=>"003", "n"=>"02"),
array("a"=>"001", "n"=>"02"),
array("a"=>"005", "n"=>"01"),
array("a"=>"001", "n"=>"01"),
array("a"=>"004", "n"=>"02"),
array("a"=>"003", "n"=>"01"),
array("a"=>"004", "n"=>"01")
);
function msort(&$array, $keys){
array_reverse($keys);
foreach($keys as $key){
uasort($array, sortByKey);
}
//
function sortByKey($A, $B){
global $key;
$a = $A[$key];
$b = $B[$key];
if($a==$b) return 0;
return ($a < $b)? -1 : 1 ;
}
}
//
msort($Test, array("a","n"));
//
foreach($Test as $t){
echo('<p>'.$t["a"].'-'.$t["n"].'</p>');
}
Run Code Online (Sandbox Code Playgroud)
我的理论是:如果我将多次乘法排序为最重要的密钥,那么我会按照mySQL查询的顺序排序.
但是php正在返回"警告:uasort()期望参数2是有效的回调函数,函数'sortByKey'未找到或者在第23行的/Library/WebServer/Documents/www/teste.array_sort.php中找到无效的函数名"(uasort)线)
这是一个简单的订单功能,我错过了什么?
usort($childs, function($a, $b) {
return $a['parent_id'] - $b['parent_id'];
});
Run Code Online (Sandbox Code Playgroud)
在这里,我用1个字段对它进行排序,如何添加更多字段来对它们进行排序?,就好像它是ORDER BY field1, field2, field3
在Mysql中一样
这是我的代码:
<?php
$array = array("world", 1, "hello", 1, "hello", "hello", "how");
$new_array = array_count_values($array);
print_r($new_array);
?>
/* Output:
Array
(
[world] => 1
[1] => 2
[hello] => 3
[how] => 1
)
Run Code Online (Sandbox Code Playgroud)
现在我想根据新数组的值对结果进行排序.所以这是预期的输出:
/* Expected Output:
Array
(
[hello] => 3
[1] => 2
[world] => 1
[how] => 1
)
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
注意:相同值的顺序无关紧要.
我使用了"rsort"功能,通过时间戳进行排序,当阵列仅包含时间戳和不多维的.
所以现在的问题是我如何处理这个问题?
该阵列看起来像similair
Array
(
[0] => Array
(
[type] => post
[id] => 1
[timestamp] => 2017-08-12 21:03:22
[poster] => 1
[profile] => 1
[post] => Testtttttinngggs
)
[1] => Array
(
[type] => post
[id] => 2
[timestamp] => 2017-08-12 21:03:18
[poster] => 1
[profile] => 5
[post] => Hello you
)
[2] => Array
(
[type] => post
[id] => 3
[timestamp] => 2017-08-12 21:03:33
[poster] => 1
[profile] => 1
[post] => Somesay timestamp is screwed …
Run Code Online (Sandbox Code Playgroud) 我有一个像这样创建的数组:
$i = 0;
$files = array();
while ($file = mysql_fetch_array($query_files)) {
$files[$i] = array();
$files[$i] = $file;
$i++;
}
Run Code Online (Sandbox Code Playgroud)
我需要能够根据每个$ file ['name']又名$ files [$ i] ['name']对$ files数组进行排序.
我该怎么做呢?谢谢!
在 PHP 中,如何根据数组值的最后一个字符对数组进行排序?以以下数组为例:
$string[0] = "They";
$string[1] = "started";
$string[2] = "plotting";
$string[3] = "against";
$string[4] = "him";
Run Code Online (Sandbox Code Playgroud)
排序后,数组将如下所示(请注意基于每个值的最后一个字符的顺序...还要注意重写的索引):
$string[0] = "started";
$string[1] = "plotting";
$string[2] = "him";
$string[3] = "against";
$string[4] = "they";
Run Code Online (Sandbox Code Playgroud) 我的数组是这种格式
Array
(
[0] => 1,3
[1] => 2,0
[2] => 5,2
[3] => 28,1
[4] => 30,2
[5] => 33,0
[6] => 36,0
[7] => 38,0
[8] => 39,0
[9] => 40,0
[10] => 42,2
[11] => 45,6
[12] => 56,1
[13] => 58,1
[14] => 68,0
[15] => 70,0
[16] => 71,0
[17] => 75,0
[18] => 76,0
[19] => 77,0
[20] => 78,0
[21] => 83,1
[22] => 86,0
[23] => 87,2
[24] => 88,0
[25] => …
Run Code Online (Sandbox Code Playgroud)