1

我认为这是一个奇怪的要求,但我真的不知道该怎么做:((

我有一个这样的数组:

$oldArray = array([0]=>'str1', [1]=>'str2', [2]=>'str3'...);
[edit:] $oldArray = explode(',',$_POST['something']); // a string from an ajax call

但我想对此“重新调整”(抱歉,这里不是很专业的术语):

$newArray = array('str1' => array(), 'str2'=>array(), 'str3'=>array() ... );
[edit:] What I'm actually trying to do is
        $_SESSION['bish']['bash'][$newArrayKEY]['bosh'] = somethingElse;

我真的希望这是足够的信息,可以让你们帮助我

非常感谢宝石

4

7 回答 7

6
$newArray = array_combine(
    $oldArray,
    $oldArray
);

会按照您的要求进行,但是我不确定您是否了解数组键

所有数组都有一个键:默认是一个简单的枚举键,这是您在原始数组中拥有的

实际上,您要求创建

$newArray = array('str1' => 'str1', 'str2' => 'str2', 'str3' => 'str3' ... );

编辑

随着您对问题的编辑:

$newArray = array_fill_keys(
    $oldArray,
    array()
);

尽管我对您尝试使用 $_SESSION 实现的目标感到困惑

于 2013-06-19T11:41:10.473 回答
1
$newArray = new array();
foreach($oldArray as $key = $value){
    $newArray[] = $value;
}   
于 2013-06-19T11:47:36.040 回答
0

试试喜欢

$newArray = array_values($oldArray);
于 2013-06-19T11:43:31.577 回答
0

我不完全明白你想做什么。您的 $oldArray 和 $newArray 之间没有任何真正的区别。这只是显示相同数组的两种方式。str1、str2、str3 是数组的值。

如果您试图说您想将您的值移动到数组的“键”,请查看 Marks 答案,如果没有,请尝试解释更多。

于 2013-06-19T11:43:34.903 回答
0

array_values($array)你要找的功能吗?

http://php.net/manual/en/function.array-values.php

于 2013-06-19T11:45:00.803 回答
0

array(0 => 'str1', 1 => 'str2', ..);array('str1', 'str2', ..);

但这array([0]=>'str1', [1]=>'str2', [2]=>'str3'...);是无效的数组

于 2013-06-19T11:46:34.607 回答
0

试试这个简单的数组函数

$oldArray = array([0]=>'str1', [1]=>'str2', [2]=>'str3'...);
$array_values = array_values($oldArray);`
于 2013-06-19T11:46:49.493 回答