0

こんにちは、同じ結果を生成する2つの別個の配列の組み合わせである配列があります。以下は、マージ後の配列です。

Array
(
    [0] => Array
        (
            [event_id] => 16
            [user_id] => 3
            [date_created] => 20130227095010

        )

    [1] => Array
        (
            [event_id] => 15
            [user_id] => 2
            [date_created] => 20130227101734

        )

    [2] => Array
        (
            [event_id] => 16
            [user_id] => 2
            [date_created] => 20130227094856

        )

)

ここから先、マージに使用した以前の2つの配列を使用せずに、date_created desc または asc に基づいて再度ソートするにはどうすればよいですか?

更新: 以前の配列結果

配列1:

Array
(
    [0] => Array
        (
            [event_id] => 15
            [user_id] => 2
            [date_created] => 20130227101734


        )

    [1] => Array
        (
            [event_id] => 16
            [user_id] => 2
            [date_created] => 20130227094856

        )

)

配列 2:

Array
(
    [0] => Array
        (
            [event_id] => 16
            [user_id] => 3
            [date_created] => 20130227095010

        )

)

これらの関数内でループを使用して、上記の配列ごとに date_created を抽出するにはどうすればよいですか

usort($array,function($a, $b) { return $a['date_created'] - $b['date_created']; }); 
4

3 に答える 3

2

のようなもので非常に簡単ですusort()

usort($array,
      function($a, $b) { return $a['date_created'] - $b['date_created']; });
于 2013-02-27T02:31:53.363 に答える
1

独自のソート関数コールバックを作成して、メソッドで使用できますusort。最初の 2 つの配列を再利用する必要があります。

usort($yourMergedArray, yourCallBackSort);

function yourCallBackSort($firstEntry, $secondEntry)
{
    // Do some stuff to compare your values and return -1, 0 or 1
    // depend if $firstEntry id <, = or > to $secondEntry
}
于 2013-02-27T02:31:33.583 に答える
0

これを試して、

$sort = array();
foreach($your_combined_array as $k=>$v) {
    $sort['date_created'][$k] = $v['date_created'];
}

array_multisort($sort['date_created'], SORT_DESC, $your_combined_array);


echo "<pre>";
print_r($your_combined_array);
于 2013-02-27T04:38:55.120 に答える