鍍金池/ 問答/PHP  網(wǎng)絡(luò)安全/ 一道PHP關(guān)于數(shù)組的題目

一道PHP關(guān)于數(shù)組的題目

    array('name','1','xixi','php'); 

    array('name'=>'1','xixi'=>'php');

請問上面的數(shù)組如何處理成下面的格式?

回答
編輯回答
短嘆

<?php
$array = array('name','1','xixi','php');

$newArr = array_combine(

array_filter($array,
    function($key)
    {
        return !($key & 1);
    },ARRAY_FILTER_USE_KEY)
,
array_filter($array,
    function($key)
    {
        return $key & 1;
    },ARRAY_FILTER_USE_KEY)

);
print_r($newArr);

2017年5月12日 08:45
編輯回答
舊言

1:

$arrayA =  array('name','1','xixi','php'); 

function convertArrays($arrayA)
{
    $keys = array(); 
    $values = array(); 
    for($i = 0; $i < count($arrayA); $i++)
    {
        if($i % 2 == 0) 
        {
            array_push($keys, $arrayA[$i]);
        }
        else 
        {
            array_push($values, $arrayA[$i]); 
        }
    }

    $arrayB = array();

    for($j = 0; $j < count($keys); $j++)
    {
        $arrayB[ $keys[$j] ] = $values[$j];
    }

    return $arrayB;
}

2:

for($i=0; $i < count($arrayA); $i+=2){
    $arrayB[$arrayA[$i]] = isset($arrayA[$i+1]) ? $arrayA[$i+1] : '';
}
2017年10月16日 12:47
編輯回答
淚染裳

上述答案都正確,我補下思路吧。。

array('name','1','xixi','php'); 

如果數(shù)組是key,value,key,value的形式,則通過循環(huán)下標取余等于0的就是key反之就是value,然后在存到一個新的數(shù)組內(nèi)就完成了

 array('name'=>'1','xixi'=>'php');

這種格式

2018年5月10日 04:26
編輯回答
舊顏
$arr = array('name','1','xixi','php');
while(current($arr)){
    $arr1[current($arr)]='';
    $key = current($arr);
    next($arr);
    $arr1[$key]=current($arr);
    next($arr);
}
2018年2月13日 04:53
編輯回答
祈歡
$array = array('name','1','xixi','php'); 
$keyArray = [];
foreach ($array as $k => $v) {
    if ($k%2 == 0) {
        $keyArray[] = $v;
        unset($array[$k]);
    }
}
$res = array_combine($keyArray, $array);
2017年7月27日 23:09
編輯回答
拽很帥
$array = ['name', '1', 'xixi', 'php'];

$new = [];
foreach ($array as $item => $value) {
    if($item%2!==0){
        $new[$array[$item-1]] = $value;
    }
}

#v2:
$new2 = [];
$len = count($array);
for ($i = 0; $i < $len ; $i += 2) {
    $new2[$array[$i]] = $array[$i+1];
}
2017年4月28日 11:36
編輯回答
影魅
<?php
$arr = array('name','1','xixi','php'); 
$chunk = array_chunk($arr,2);
$data  = [];
foreach($chunk as $val){
  $data[] =array($val[0]=>$val[1]);
}
var_dump($data);
2018年5月12日 15:28
編輯回答
孤島
<?php
$array = array('name','1','xixi','php');
//循環(huán)?不存在的
$newArr = array_combine(
    array_filter($array,
        function($key)
        {
            return !($key & 1);
        },ARRAY_FILTER_USE_KEY)
    ,
    array_filter($array,
        function($key)
        {
            return $key & 1;
        },ARRAY_FILTER_USE_KEY)
);
print_r($newArr);
2018年1月3日 02:01