php – 处理数组以始终包含来自另一个数组的值的键(和顺序)

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – 处理数组以始终包含来自另一个数组的值的键(和顺序)脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_403_1@
我有以下’key’数组:(数组1)

Array
(
    [0] => First_name
    [1] => surname
    [2] => posITion
    [3] => age
)

此数组应确定数组2中应存在的键和键/值的顺序.因此,在完美的世界中,数组2将如下所示:

Array
(
    [0] => Array
        (
            [first_name] => James
            [surname] => Johnstone
            [position] => Striker
            [age] => 42
        )

    [1] => Array
        (
            [first_name] => Al
            [surname] => MacLean
            [position] => Defender
            [age] => 22
        )

    ...

)

我遇到的问题是在下面的示例数组中.有时:

a)数组2中键的顺序与数组1不同
b)数组1中定义的一些键在数组2中不存在 – 如下所示:

Array
(
    [0] => Array
        (
            [position] => Defender
            [first_name] => James
            [surname] => McDonald

        )

    [1] => Array
        (
            [position] => Striker
            [first_name] => Ben
            [surname] => Lailey
        )

    ...
)

我想要一些帮助创建一个PHP函数,它将采用一个’格式错误’的数组2,如上面的那个,并将其转换为应该如何:按照数组1定义的顺序,并添加任何缺少的键成为’正确’如此:

Array
(
    [0] => Array
        (
            [first_name] => James
            [surname] => McDonald
            [position] => Defender
            [age] => 

        )

    [1] => Array
        (

            [first_name] => Ben
            [surname] => Lailey
            [position] => Striker
            [age] =>
        )

    ...
)

此示例中使用的密钥是任意的,可能在阵列1中添加,删除或重新排序新密钥,我需要阵列2以尊重阵列1.

先感谢您.

解决方法

一个简单的实现:

// Pass in an array of keys,and an array of arrays
function cleanArray($keys,$arrays)
{
    // Create an empty container for our final output
    $final = array();

    // Loop through array of arrays
    foreach($arrays as $a)
    {
        // Create empty value for current item
        $next = array();

        // Loop through keys,in order
        foreach($keys as $k)
        {
            // Assign next key and value if we have it,or a blank string if we don't
            $next[$k] = isset($a[k]) ? $a[k] : '';
        }

        // Add current item to output
        $final[] = $next;
    }

    // Return final values,each item Now having its keys ordered and normalized
    return $final;
}

脚本宝典总结

以上是脚本宝典为你收集整理的php – 处理数组以始终包含来自另一个数组的值的键(和顺序)全部内容,希望文章能够帮你解决php – 处理数组以始终包含来自另一个数组的值的键(和顺序)所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。