数组将三个或更多数组与php结合 - php

好的,假设我有5个数组,全部都是索引数组,并且我想将它们组合起来,这是我能想到的最好方法,是否有更好的方法来处理呢?

function mymap_arrays(){
    $args=func_get_args();
    $key=array_shift($args);
    return array_combine($key,$args);
}
$keys=array('u1','u2','u3');
$names=array('Bob','Fred','Joe');
$emails=array('[email protected]','[email protected]','[email protected]');
$ids=array(1,2,3);
$u_keys=array_fill(0,count($names),array('name','email','id'));
$users=array_combine($keys,array_map('mymap_arrays',$u_keys,$names,$emails,$ids));

这将返回:

Array
(
    [u1] => Array
        (
            [name] => Bob
            [email] => [email protected]
            [id] => 1
        )

    [u2] => Array
        (
            [name] => Fred
            [email] => [email protected]
            [id] => 2
        )

    [u3] => Array
        (
            [name] => Joe
            [email] => [email protected]
            [id] => 3
        )

)

编辑:经过大量基准测试之后,我使用了一个版本的Glass Robots答案来处理可变数量的数组,它比他显然要慢,但比我原来的要快:

function test_my_new(){
    $args=func_get_args();
    $keys=array_shift($args);
    $vkeys=array_shift($args);
    $results=array();
    foreach($args as $key=>$array){
        $vkey=array_shift($vkeys);
        foreach($array as $akey=>$val){
            $result[$keys[$akey]][$vkey]=$val;
        }
    }
    return $result;
}
$keys=array('u1','u2','u3');
$names=array('Bob','Fred','Joe');
$emails=array('[email protected]','[email protected]','[email protected]');
$ids=array(1,2,3);
$vkeys=array('name','email','id');
test_my_new($keys,$vkeys,$names,$emails,$ids);

参考方案

出于个人可读性考虑,我会这样做:

$keys   = array('u1','u2','u3');
$names  = array('Bob','Fred','Joe');
$emails = array('[email protected]','[email protected]','[email protected]');
$ids    = array(1,2,3);
$result = array();

foreach ($keys as $id => $key) {
    $result[$key] = array(
        'name'  => $names[$id],
        'email' => $emails[$id],
        'id'    => $ids[$id],
    );
}

验证IBAN PHP - php

在设计新平台时,我们尝试集成IBAN编号。我们必须确保IBAN已经过验证,并且存储在数据库中的IBAN始终正确。那么验证数字的正确方法是什么? 参考方案 正如我在其他问题中解释的逻辑一样,我尝试自己创建一个函数。根据Wikipedia文章中解释的逻辑,在下面找到合适的功能。国家特定验证。它适合吗http://en.wikipedia.org/wiki/Int…

将字符串放在数组中的每个数组之间-PHP - php

可以说我有一个包含9个句子的文本文件(可能更多!这只是一个例子),然后我在php中读取该文件并将其每3个句子拆分一次,并将其存储在变量中,从而导致该数组:$table = array( array( 'text number 1', 'text number 2', 'text number 3' …

PHP strtotime困境 - php

有人可以解释为什么这在我的服务器上输出为true吗?date_default_timezone_set('Europe/Bucharest'); var_dump( strtotime('29.03.2015 03:00', time()) === strtotime('29.03.2015 04:00�…

PHP-全局变量的性能和内存问题 - php

假设情况:我在php中运行一个复杂的站点,并且我使用了很多全局变量。我可以将变量存储在现有的全局范围内,例如$_REQUEST['userInfo'],$_REQUEST['foo']和$_REQUEST['bar']等,然后将许多不同的内容放入请求范围内(这将是适当的用法,因为这些数据指的是要求自…

PHP:对数组排序 - php

请如何排序以下数组Array ( 'ben' => 1.0, 'ken' => 2.0, 'sam' => 1.5 ) 至Array ( 'ken' => 2.0, 'sam' => 1.5, 'ben' =&…