Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 修改数组键_Php_Arrays - Fatal编程技术网

Php 修改数组键

Php 修改数组键,php,arrays,Php,Arrays,我有一个std对象数组 我想重新命名它们 我该怎么做 乙二醇 如何将值0、1、2重命名为其他值 ---更新如下--- 我现在用这个 foreach ($arr as $value) { $new_arr[] = array('my_key' => $value); } foreach($arr作为$value){ $new_arr[]=array('my_key'=>$value); } 但代价是增加一个数组维度 我想改变这样的事情 Array( [0] stdClass

我有一个std对象数组

我想重新命名它们

我该怎么做

乙二醇

如何将值0、1、2重命名为其他值

---更新如下---

我现在用这个

foreach ($arr as $value) { $new_arr[] = array('my_key' => $value); } foreach($arr作为$value){ $new_arr[]=array('my_key'=>$value); } 但代价是增加一个数组维度

我想改变这样的事情

Array( [0] stdClass tid => 10 name => Category [1] stdClass tid => 11 name => Product ) 排列( [0]标准类 tid=>10 名称=>类别 [1] 标准类 tid=>11 名称=>产品 ) 到

排列( [10] 标准类 tid=>10 名称=>类别 [11] 标准类 tid=>11 名称=>产品 )
也许是这样的

$mapping = array(
     0 => "object_0",
     1 => "object_1",
     2 => "object_2",
     3 => "object_3",
);

foreach($my_array as $key => $value)
{
     //Check to see if there's a key, else use integer
     $_key = isset($mapping[$key]) ? $mapping[$key] : $key;

     //Remove the old one | 0,1,2 ... $value already in scope, and not referenced.
     unset($my_array[$key]);

     //And key 0 to index object_0 etc
     $my_array[$_key] = $value;
}
这将循环数组中的每个元素并对照mappings数组进行检查,如果键存在,它将向正确的索引添加值并删除旧的基于整数的索引


范围和引用也应该可以,类似这样的东西可能

$mapping = array(
     0 => "object_0",
     1 => "object_1",
     2 => "object_2",
     3 => "object_3",
);

foreach($my_array as $key => $value)
{
     //Check to see if there's a key, else use integer
     $_key = isset($mapping[$key]) ? $mapping[$key] : $key;

     //Remove the old one | 0,1,2 ... $value already in scope, and not referenced.
     unset($my_array[$key]);

     //And key 0 to index object_0 etc
     $my_array[$_key] = $value;
}
这将循环数组中的每个元素并对照mappings数组进行检查,如果键存在,它将向正确的索引添加值并删除旧的基于整数的索引


范围和参考文献也可以,你能重新表述你的问题吗?你想把钥匙换成别的吗?你能展示一个实际数组的
var\u dump
和一个你想把它改成什么的例子吗?我指的是键。你能重新表述你的问题吗?你想把钥匙换成别的吗?你能展示一个真实数组的实际
var_dump
和一个你想把它改成什么的例子吗?的确,我指的是键。嗯,这和它有什么关系,他重新映射了他的数组索引,这就是全部,与强制转换无关。那是在第二次升级之前。嗯,这和它有什么关系,他重新映射了他的数组索引,这就是全部,与施法无关。那是在第二次升级之前
$new_arr = array();
foreach ($array as $val)
{
  $new_arr[(int)$val->tid] = $val;
}
$mapping = array(
     0 => "object_0",
     1 => "object_1",
     2 => "object_2",
     3 => "object_3",
);

foreach($my_array as $key => $value)
{
     //Check to see if there's a key, else use integer
     $_key = isset($mapping[$key]) ? $mapping[$key] : $key;

     //Remove the old one | 0,1,2 ... $value already in scope, and not referenced.
     unset($my_array[$key]);

     //And key 0 to index object_0 etc
     $my_array[$_key] = $value;
}