将数组键从字符串转换为相同值的int

时间:2015-08-13 08:57:28

标签: php arrays

我有一个vaery大数组,它以json格式解析为我的php脚本。我想将键从字符串转换为整数。键是序列号,所以我不能只使用array_values。目前我这样做,但更喜欢不涉及循环的解决方案。

在int转换之前进行json解码后的示例数组:

array (
    '123' => 'my text',
    '223' => 'my text too',
    '183' => 'my text foo',
    '103' => 'my text doo',
    // more array items
);

示例代码:

$data = json_decode($_POST['json']);

$newArr = Array();
foreach ($data as $key => $val) {
    $ref = (int)$key;
    newArr[$ref] = $key; 
}

3 个答案:

答案 0 :(得分:4)

$arr = array (
    '123' => 'my text',
    '223' => 'my text too',
    '183' => 'my text foo',
    '103' => 'my text doo'
);

$newArray = array_combine(array_map('intval', array_keys($arr)), array_values($arr));

答案 1 :(得分:0)

试试这个!

import os
os.system("THEANO_FLAGS='device=gpu0' python myscript.py")
os.system("THEANO_FLAGS='device=gpu1' python myscript.py")

:)

答案 2 :(得分:0)

如果您拥有JSON编码的源功能,只需添加
json_encode($data, JSON_NUMERIC_CHECK)

这将强制JSON中的关键字段为int(如果存在int key字段)