2

配列が与えられた場合、キー [1] で始まる配列を string 型から int 型に変換するにはどうすればよいですか?

Array
(
  [0] => "id"
  [1] => "6086220176"
  [2] => "6542925762"
  [3] => "6623113406"
  [4] => "6702782948"
)

関連する質問をチェックアウトしました配列値を文字列から整数に変換する方法? すでにですが、配列内のすべてのキーではなく、最初のキー「id」を変換でスキップしたいと思います!

4

8 に答える 8

4
array_walk($array, function (&$value) {
    if (ctype_digit($value)) {
        $value = (int) $value;
    }
});
var_export($array);

出力:

array (
  0 => 'id',
  1 => 6086220176,
  2 => 6542925762,
  3 => 6623113406,
  4 => 6702782948,
)
于 2013-11-08T16:55:58.213 に答える
3
$arr = array_merge(array($arr[0]),array_map('intval', array_slice($arr, 1)));

出力:

array(5) {
  [0]=>
  string(2) "id"
  [1]=>
  int(2147483647)
  [2]=>
  int(2147483647)
  [3]=>
  int(2147483647)
  [4]=>
  int(2147483647)
}

デモ。

于 2013-11-08T17:11:25.127 に答える
0

これを行うのは賢明ではありませんが、これはおそらくうまくいくでしょう:

$narray = array();
foreach($array as $k => $v){
   $narray[$k+1] = $v;
}
$array = $narray;

$array1から始めたい配列です。

于 2013-11-08T16:53:29.463 に答える
0

php は緩く型付けされているため、型キャストする必要はありません。それはあなたのためにそれをします。ただし、これを明示的に行いたい場合は、次のようにすることができます。

$c = count($array)-1;
for ($n=1;$n<$c;$n++) {
  $array[$n] = (int) $array[$n];
}
于 2013-11-08T16:54:41.180 に答える
0
foreach($array as $key => $val){
    if($key !== 0){
        $array[$key] = (int) $val;
    }
}

また

foreach($array as $key => $val){
    if(is_numeric($val)){
        $array[$key] = (int) $val;
    }
}
于 2013-11-08T16:55:25.257 に答える