array('name','1','xixi','php');
array('name'=>'1','xixi'=>'php');
请问上面的数组如何处理成下面的格式?
array('name','1','xixi','php');
array('name'=>'1','xixi'=>'php');
请问上面的数组如何处理成下面的格式?
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] : '';
}
<?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);
$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);
$arr = array('name','1','xixi','php');
while(current($arr)){
$arr1[current($arr)]='';
$key = current($arr);
next($arr);
$arr1[$key]=current($arr);
next($arr);
}
<?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);
上述答案都正确,我补下思路吧。。
array('name','1','xixi','php');
如果数组是key,value,key,value的形式,则通过循环下标取余等于0的就是key反之就是value,然后在存到一个新的数组内就完成了
array('name'=>'1','xixi'=>'php');
这种格式
$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];
}
2 回答1.6k 阅读✓ 已解决
1 回答1.4k 阅读✓ 已解决
2 回答1k 阅读✓ 已解决
2 回答1.1k 阅读
1 回答946 阅读
1 回答899 阅读
1 回答897 阅读