2017-02-07 91 views
-1

我有一个基于数组的MySQL查询。 如果来到像这样的数组:在PHP中更改特定元素数组中的数据类型

array (size=6) 
0 => 
array (size=2) 
    'name' => string 'Login' (length=5) 
    'y' => string '1' (length=1) 
1 => 
array (size=2) 
    'name' => string 'Printer' (length=7) 
    'y' => string '2' (length=1) 
2 => 
array (size=2) 
    'name' => string 'Monitor' (length=7) 
    'y' => string '0' (length=1) 
3 => 
array (size=2) 
    'name' => string 'Computer' (length=8) 
    'y' => string '0' (length=1) 
4 => 
array (size=2) 
    'name' => string 'Network' (length=7) 
    'y' => string '0' (length=1) 
5 => 
    array (size=2) 
    'name' => string 'Lain Lain' (length=9) 
    'y' => string '0' (length=1) 

我怎样才能让所有的关键“Y”为整数?

+2

它转换为当需要使用它作为一个整数'$ Z =(int)的$阵列的整数[0] [ 'Y'] + 1;' – RiggsFolly

回答

0

可以使用array_map来处理数组的所有元素

$arr = [ 
    ['x' => 'str', 'y' => '1'], 
    ['x' => 'str', 'y' => '2'], 
    ['x' => 'str', 'y' => '3'] 
]; 


print_r(array_map(function($el) { 
    $el['y'] = intval($el['y']); 
    return $el; 
}, $arr)); 
-1

可以迭代这个数组,看看是否y持有数值,如果这样做,将它转换为整数:

foreach ($array as $item) { 
    if (is_numeric($item['y'])) { 
     $item['y'] = intval($item['y']); 
    } 
} 

看到这里工作的例子:https://3v4l.org/ABDof

-1

随着foreach

foreach($myArray as $k=>$v){ //iterate in each array 
     $myArray[$k]['y'] = intval($myArray[$k]['y']); //re-set value type 
    } 

Example