如何将数组中的某些字符串连接到另一个多个数组? (PHP,Laravel)

时间:2016-01-18 12:59:01

标签: php arrays laravel

我有两个不同的阵列。第一个数组($ ecode)是一个多数组。 $ ecode的输出如下所示:

Array
(
    [0] => Array
        (
            [ecode] => 200
            [number] => 540
        )

    [2] => Array
        (
            [ecode] => 404
            [number] => 44
        )

    [3] => Array
        (
            [ecode] => 403
            [number] => 9
        )
)

(404,200 ....等代码在那里,数量([number])在我的日志文件中存在多少)

在我的第二个中,普通数组只是一些字符串:

$ecode_text[] = ['Document Not Found', 'Server busy', 'Forbidden', 'Request executed', '........' ];

我的问题是我需要将字符串置于正确的错误代码

像404找不到

最后我的多个数组应如下所示:

    Array
    (
        [0] => Array
            (
                [ecode] => 204
                [number] => 540
                [text] => Request executed
            )

        [2] => Array
            (
                [ecode] => 404
                [number] => 44
                [text] => Document not Found
)

有人可以帮我这个吗?我从来没有连接两个不同的阵列,也没有线索从哪里开始。在我的谷歌搜索中,我没有找到与我的问题相关的东西。

我正在使用Laravel Framework,普通的php就够了,但如果有人知道Laravel的解决方案,那就太棒了。

感谢您的帮助!

我的尝试:

$error_val = array_count_values($ecode_array);
foreach($error_val as $key => $val){
    $errors[] = [
        'number' => $val,
    ];
}

$ecode_text[] =
    [
        404 => 'Document Not Found',
        503 => 'Server busy',
        403 => 'Forbidden',
        204 => 'Request executed',
        307 => 'Moved => temporarily',
        303 => 'Moved temporarily (redirect)',
        206 => 'Partial Content',
        301 => 'Moved permanently (redirect)',
        500 => 'Internal server Error'
        ];

foreach($ecode_text as $ecode => $test){
    if ($ecode == in_array($ecode, $errors)){
        $end_ecode[] = [
            'ecode' => $ecode,
            'test' => $test,
            'number' => $errors['number']
        ];
    }
}

但是这对我不起作用..

1 个答案:

答案 0 :(得分:1)

您需要让规范化的文字引用错误代码,你像这样排列:

$ecode_text = [404 => 'Document Not Found', 403 => 'Server busy', 401 => 'Forbidden', '........' ];

只是foreach

foreach ($ecode as &$e):
  $e['text'] = $ecode_text[$e['ecode']];
endforeach;