我有一个如下所示的数组:
Array
(
[0] => ripe@hobby.nl 20140827
[1] => bas@hobby.nl 20130827
[2] => bas@dikkenberg.net 20140825
[3] => bas@hobby.nl 20120825
[4] => ripe@hobby.nl 20140826
)
现在我想基于数字在php中对这个数组进行排序,这样就忽略了排序过程中的电子邮件地址。
答案 0 :(得分:4)
例如,假设条目总是像email space number
:
usort($ary, function($a, $b) {
$a = intval(explode(' ', $a)[1]);
$b = intval(explode(' ', $b)[1]);
return $a - $b;
});
或使用Schwartzian transform更简单有效的方式:
$ary = array_map(function($x) {
return [intval(explode(' ', $x)[1]), $x];
}, $ary);
sort($ary);
$ary = array_map(function($x) {
return $x[1];
}, $ary);
答案 1 :(得分:1)
<?php
$data = Array(0 => 'ripe@hobby.nl 20140827',
1 => 'bas@hobby.nl 20130827',
2 => 'bas@dikkenberg.net 20140825',
3 => 'bas@hobby.nl 20120825',
4 => 'ripe@hobby.nl 20140826'
);
$count_data = count($data);
for($i=0;$i<$count_data;$i++)
{
$new_data[trim(strstr($data[$i], ' '))]=$data[$i];
}
echo "<pre>"; print_r($new_data);
?>
这会让你回头
Array
(
[20140827] => ripe@hobby.nl 20140827
[20130827] => bas@hobby.nl 20130827
[20140825] => bas@dikkenberg.net 20140825
[20120825] => bas@hobby.nl 20120825
[20140826] => ripe@hobby.nl 20140826
)
现在您可以根据需要按键
进行排序答案 2 :(得分:0)
您可以遍历数组,explode
空格上的字符串' '
,然后将第一部分$explodedString[1]
设置为新数组中的键,然后使用{{1}在新阵列上。
未经测试的代码。
ksort