PHP将数组键更改为其值

时间:2013-06-19 11:37:15

标签: php arrays

我认为这是一个奇怪的请求,但我真的无法弄清楚如何做到这一点:((

我有一个这样的数组:

$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;

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

非常感谢 宝石

7 个答案:

答案 0 :(得分:6)

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

会做你所要求的,但我不确定你是否了解数组键

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

有效地你要求创建

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

修改

通过编辑问题:

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

虽然我对你想用$ _SESSION

实现的目标感到困惑

答案 1 :(得分:1)

$newArray = new array();
foreach($oldArray as $key = $value){
    $newArray[] = $value;
}   

答案 2 :(得分:0)

尝试

$newArray = array_values($oldArray);

答案 3 :(得分:0)

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

如果您试图说要将值移动到数组的“键”,请查看标记答案,如果没有,请尝试解释一下。

答案 4 :(得分:0)

array_values($array)是您正在寻找的功能吗?

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

答案 5 :(得分:0)

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

类似

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

答案 6 :(得分:0)

尝试这个简单的数组函数

$oldArray = array([0]=>'str1', [1]=>'str2', [2]=>'str3'...);
$array_values = array_values($oldArray);`