0

我对数组有一个大问题,我想按键分组(或者我现在不想:()

我从 mySQL 获取链接,然后执行以下操作:

$lien2 = $links2['text'];
$lien2 = stripslashes($lien2);
$lien2 = htmlspecialchars($lien2);
$lien2 = nl2br($lien2);
preg_match_all('#http://.*?\.?([a-zA-Z0-9\-]+)(\.[a-zA-Z0-9]+)/[a-zA-Z0-9\/\*\-\?\&\%\=\,\.\;\#\_]+#i', $lien2, $lien2_result, PREG_SET_ORDER);

这是数组 $lien2_result:

    Array
(
    [0] => Array
        (
            [0] => links1
            [1] => A
        )

    [1] => Array
        (
            [0] => links2
            [1] => B
        )

)
Array
(
    [0] => Array
        (
            [0] => links3
            [1] => C
        )

)
Array
(
    [0] => Array
        (
            [0] => links4
            [1] => B
        )

)
Array
(
    [0] => Array
        (
            [0] => links5
            [1] => D
        )

)
Array
(
    [0] => Array
        (
            [0] => links6
            [1] => E
        )

)

我想得到以下结果:

A
links1
B
links2
links4
C
links3
D
links5
E
links6
4

1 回答 1

2

我会亲自调整查询,但如果你被这个结果集困住,你可以用

foreach($lien2_result as $lien2){
    foreach($lien2 as $item){
        $arr[$item[1]][] = $item[0];
    }
}

其中 print_r($arr) 会产生如下结果:

$arr = Array('A' => Array('links1'), 'B' => Array('links2','links4')); //and so on..

并按照您要求的方式实际打印:

foreach($arr as $name => $value){
    echo($name.'<br />');
    foreach($value as $item){
        echo($item.'<br />');
    }
}

编辑

这是一个示例 http://sandbox.onlinephpfunctions.com/code/c0da893797cb2049e8346168b280a9f5b1fa145b

于 2012-12-09T17:31:29.880 回答