首页 >社区问答列表 >php - 怎么把这字符串变成数组,用implode没有用,应该怎么变成数组呢

php - 怎么把这字符串变成数组,用implode没有用,应该怎么变成数组呢

提交多张图片后。我把图片的$_FILES打印出来,进行foreach循环,如果没有报错的,打印出图片的$key值,我想把$key变成一个数组。
foreach($_FILES as $key=>$value){
if(!$value['error']){

print_r($key);
}}

然后用implode没有效果

var_dump一下,是三个字符串

  • ringa_lee
  • ringa_lee    2017-04-11 10:08:103楼

    根据你评论下面的要求,写了这个观点,你看是否符合你的要求
    $res = array();
    foreach($_FILES as $key=>$value){
    if(!$value['error']){
         $res[]= array($key=>$value['tmp_name']);  
    }}
    $res = array_values($res);
    print_r($res);

    +0添加回复

  • 回复
  • ringa_lee
  • ringa_lee    2017-04-11 10:08:102楼

    建议提问题的时候把问题场景描述清楚一点,不然大家很难给出准确有效的答案。

    具体到你的问题,你只给了这么一小段字符串,无法知道它的规律是什么,只能猜测。

    如果字符串是由规律的pic{数字}拼接成的,那么可以这么处理:

    $str = 'pic1pic12pic3';
    
    $parts = explode('pic', $str);
    $parts = array_filter($parts);
    
    $result = array_map(
        function ($part) { return 'pic' . $part; },
        $parts
    );
    
    var_dump($result);

    +0添加回复

  • 回复
  • 迷茫
  • 迷茫    2017-04-11 10:08:101楼

    试试array_keys函数

    如果你要排除上传错误的,就自己建
    一个数组

    $keys=array{};

    然后在foreach中把$key加入数组

     $keys[]=$key;

    implode是用来把数组元素组合成一个字符串的

    +0添加回复

  • 回复