php数组转换成这样的

一个这样的数组Array ( [0] => a [1] => s [2] => d [3] => f )转换成Array ( '0' => 'a','1' => 's', '2' => 'd', '3' => 'f' ) 可以么,求大神指导

其实过程是这样两个字符串$atr = 1,2,3,4 $str=a,b,c,f 一一对应转换成数组array('1'=>'a','2'=>'b','3'=>'c','4'=>'f')

并打印出来array('1'=>'a','2'=>'b','3'=>'c','4'=>'f'),不知道这样好理解么

阅读 4.2k
8 个回答

$atr='1,2,3,4';
$str='a,b,c,f';

//以第一个数组的值作为key值 , 第二个数组的值作伪值 , 组成新的二维数组

         for($i=0;$i<count($atr);$i++){

// $newarr[$atr[$i]] = $str[$i];

              $newarr[$i] = "'$atr[$i]' => '$str[$i]'";

        }
        $str = implode(',',$newarr);
        echo 'array('.$str.')';
        //print_r($newarr);
<?php

$atr = '1,2,3,4';
$atr_arr = explode(',', $atr);

$str='a,b,c,f';
$str_arr = explode(',', $str);

$arr = array_combine($atr_arr, $str_arr);

var_dump($arr);
新手上路,请多包涵

图片描述

你的这个没法用

Array ( [0] => a [1] => s [2] => d [3] => f )

出现这样的数组显示形式,一般是tp下dump的友好显示。并不是数组。

$tmp = array( '0' => 'a','1' => 's', '2' => 'd', '3' => 'f' );
var_dump($tmp);

以上代码显示的就是:

Array ( [0] => a [1] => s [2] => d [3] => f )

===================dump源码=========================

 /**
 * 浏览器友好的变量输出
 * @param mixed $var 变量
 * @param boolean $echo 是否输出 默认为true 如果为false 则返回输出字符串
 * @param string $label 标签 默认为空
 * @return void|string
 */
public static function dump($var, $echo = true, $label = null)
{
    $label = (null === $label) ? '' : rtrim($label) . ':';
    ob_start();
    var_dump($var);
    $output = ob_get_clean();
    $output = preg_replace('/\]\=\>\n(\s+)/m', '] => ', $output);
    if (IS_CLI) {
        $output = PHP_EOL . $label . $output . PHP_EOL;
    } else {
        if (!extension_loaded('xdebug')) {
            $output = htmlspecialchars($output, ENT_QUOTES);
        }
        $output = '<pre>' . $label . $output . '</pre>';
    }
    if ($echo) {
        echo ($output);
        return null;
    } else {
        return $output;
    }
}

第一行的问题没有看懂,假如是第二个问题的话解法如下:

$atr='1,2,3,4'; 
$str='a,b,c,f';
$aarr=explode(',',$atr);
$sarr=explode(',',$str);
$res=array();
foreach($aarr as $k=>$v){
    $res[$v]=$sarr[$k];
}
var_dump($res);

结果就是你要的array('1'=>'a','2'=>'b','3'=>'c','4'=>'f')

图片描述

$keys  = "1,2,3,4";
$values= "a,b,c,f";

// explode 把字符串分割为数组
// array_combine() key=>value 组装
$arr = array_combine(explode(",", $keys), explode(",", $values) );
print_r($arr);

你是如何得出这个数组的??!!
Array ( [0] => a [1] => s [2] => d [3] => f )

参数之间有逗号吗?
例如 Array ( [0] => a ,[1] => s, [2] => d ,[3] => f );
但这样也是空数组啊?

clipboard.png

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题