首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在php中创建数组时出错

在php中创建数组时出错
EN

Stack Overflow用户
提问于 2012-07-23 10:06:06
回答 3查看 50关注 0票数 0

我有一个示例代码:

代码语言:javascript
复制
$id = '1,2,3,4,5';
$name = 'Iphone 3,Iphone 3S,Iphone 4,Iphone 4S,Iphone 5';
$id_arr = array($id);
$name_arr = array($name);
$arr = array_combine($id_arr, $name_arr);
print_r($arr);

当I print_r($arr) is时,result is ([1,2,3,4,5] =>'Iphone 3,Iphone 3S,Iphone 4,Iphone 4S,Iphone 5')

如何修复此问题是结果([1]=>'Iphone 3' [2] => 'Iphone 3S' ... [5]=>'Iphone 5')

EN

回答 3

Stack Overflow用户

发布于 2012-07-23 10:08:20

在给定输入的情况下,正确使用的函数是explodestr_split有不必要的开销。$id_arr = explode(',', $id);

请注意,数组实际上应该这样定义:$id_arr = array(1 => 'value 1', 2 => 'value 2', 3 => 'value 3');等。除非您被强制使用字符串作为密钥集。

票数 2
EN

Stack Overflow用户

发布于 2012-07-23 10:09:57

或者尝试:

代码语言:javascript
复制
$id = '1,2,3,4,5';
$name = 'Iphone 3,Iphone 3S,Iphone 4,Iphone 4S,Iphone 5';
$id_arr = explode(',',$id);
$name_arr =explode(',',$name);
$arr = array_combine($id_arr, $name_arr);
print_r($arr);
票数 1
EN

Stack Overflow用户

发布于 2012-07-23 10:49:05

我不知道为什么你的数组必须以1开头,但如果你想保持这样的顺序并保持键为整数,可以这样做:

代码语言:javascript
复制
$name = 'Iphone 3,Iphone 3S,Iphone 4,Iphone 4S,Iphone 5';

$parts = explode(',', $name);

$arr  = array();

$i = 1;

foreach($parts as $value)
{
    $arr[$i] = $value;//we can possibly strip leading spaces and convert string case
    $i++;
}

print_r($arr);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11605633

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档