按字符串长度PHP

时间:2016-05-14 19:44:54

标签: php arrays

我必须按照内部数组中一个字段(笑话)上存储的字符串的长度对bidimentional数组进行排序。

    Array(
     'type' => 'success',
     'value => array (
         0 => array (
             'id' => 1
             'joke' => 'Chuck Norris uses ribbed condoms inside out, so he gets the pleasure.');
         1 => array (
              'id' => 2
              'joke' => 'MacGyver can build an airplane out of gum and paper clips. Chuck Norris can kill him and take it.');
   );
);

我尝试了几种方法,但我无法做到正确

2 个答案:

答案 0 :(得分:1)

如果你需要使用非平凡的比较对数组进行排序,那么最好使用usort()

usort($array, function($a, $b) {
    return strlen($a['joke']) > strlen($b['joke']);
});

答案 1 :(得分:1)

如果你想通过“笑话”键对嵌套数组进行排序 - usort函数将完成这项工作:

usort($arr['value'], function($a,$b) {  // $arr is your initial array
    return mb_strlen($a['joke']) - mb_strlen($b['joke']);
});

print_r($arr);