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

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

print_r($key);
}}
图片描述

然后用implode没有效果

var_dump一下,是三个字符串
图片描述

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

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

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

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

$str = 'pic1pic12pic3';

$parts = explode('pic', $str);
$parts = array_filter($parts);

$result = array_map(
    function ($part) { return 'pic' . $part; },
    $parts
);

var_dump($result);

试试array_keys函数

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

$keys=array{};

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

 $keys[]=$key;

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

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