Do not speak Portuguese? Translate this site with Google or Bing Translator
PHP Converter array string para inteiro

Posted on: December 14, 2021 12:44 PM

Posted by: Renato

Categories: PHP dev webdev programming

Views: 200

PHP Converter array string para inteiro

php convert array strings to int


Convert array values from string to int?

$string = "1,2,3"
$ids = explode(',', $string);
var_dump($ids);
array(3) {
  [0]=>
  string(1) "1"
  [1]=>
  string(1) "2"
  [2]=>
  string(1) "3"
}

Você pode conseguir isso seguindo o código,

$integerIDs = array_map('intval', explode(',', $string));

Apenas criando uma matriz de 1 milhão de inteiros aleatórios entre 0 e 100. Então, implodi-os para obter a string.

 $integers = array();
  
  for ($i = 0; $i < 1000000; $i++) {
      $integers[] = rand(0, 100);
  }
  $long_string = implode(',', $integers);
  
###Method 1 This is the one liner from Mark's answer:

$integerIDs = array_map('intval', explode(',', $long_string));
###Method 2

This is the JSON approach:

  $integerIDs = json_decode('[' . $long_string . ']', true);
###Method 3 I came up with this one as modification of Mark's answer. This is still using explode() function, but instead of calling array_map() I'm using regular foreach loop to do the work to avoid the overhead array_map() might have. I am also parsing with (int) vs intval(), but I tried both, and there is not much difference in terms of performance.

  $result_array = array();
  $strings_array = explode(',', $long_string);
  
  foreach ($strings_array as $each_number) {
      $result_array[] = (int) $each_number;
  }

  
Results:

Method 1        Method 2        Method 3
0.4804770947    0.3608930111    0.3387751579
0.4748001099    0.363986969     0.3762528896
0.4625790119    0.3645150661    0.3335959911
0.5065748692    0.3570590019    0.3365750313
0.4803431034    0.4135499001    0.3330330849
0.4510772228    0.4421861172    0.341176033
0.503674984     0.3612480164    0.3561749458
0.5598649979    0.352314949     0.3766179085
0.4573421478    0.3527538776    0.3473439217
        
0.4863037268    0.3742785454    0.3488383293  

O resultado final é a média. Parece que o primeiro método foi um pouco mais lento para 1 milhão de inteiros, mas não notei ganho de desempenho 3x do Método 2, conforme declarado na resposta. Acontece que cada loop foi o mais rápido no meu caso. Eu fiz o benchmarking com o Xdebug.

An alternative shorter method could be:

$r = explode(',', $s);
foreach ($r as &$i) $i = (int) $i;


# Gostei deste, resolveu um problema meu.

Use este código com um encerramento (introduzido no PHP 5.3), é um pouco mais rápido do que a resposta aceita e, para mim, a intenção de convertê-lo em um inteiro é mais clara:

// if you have your values in the format '1,2,3,4', use this before:
// $stringArray = explode(',', '1,2,3,4');

$stringArray = ['1', '2', '3', '4'];

$intArray = array_map(
    function($value) { return (int)$value; },
    $stringArray
);

var_dump($intArray);

Output will be:

array(4) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
  [3]=>
  int(4)
}


Alternatively, you can use array_walk_recursive() for a shorter answer:

array_walk_recursive($array, function(&$value){
    $value = intval($value);
});

- https://stackoverflow.com/questions/9593765/convert-array-values-from-string-to-int


1

Share
About Author

Renato

Developer

Add a Comment
Comments 0 Comments

No comments yet! Be the first to comment

Blog Search


Categories

OUTROS (9) Variados (108) PHP (86) Laravel (95) Black Hat (3) front-end (23) linux (70) postgresql (27) Docker (7) rest (4) soap (1) webservice (2) October (1) CMS (2) node (6) backend (10) ubuntu (33) devops (10) nodejs (3) npm (1) nvm (0) git (2) firefox (0) react (6) reactnative (5) collections (0) javascript (3) reactjs (7) yarn (0) adb (1) solid (0) blade (2) models (1) controllers (0) log (0) html (2) hardware (2) aws (11) Transcribe (1) transcription (1) google (3) ibm (1) nuance (1) PHP Swoole (4) mysql (20) macox (2) flutter (1) symfony (1) cor (1) colors (2) homeOffice (2) jobs (1) imagick (2) ec2 (1) sw (1) websocket (1) markdown (1) ckeditor (1) tecnologia (9) faceapp (1) eloquent (10) query (2) sql (31) ddd (2) nginx (5) apache (4) certbot (1) lets-encrypt (2) debian (6) liquid (1) magento (1) ruby (1) LETSENCRYPT (1) Fibonacci (1) wine (1) transaction (1) pendrive (1) boot (1) usb (1) prf (1) policia (1) federal (1) lucena (1) mongodb (4) paypal (1) payment (1) zend (1) vim (1) ciencia (6) js (1) nosql (1) java (1) JasperReports (1) phpjasper (1) covid19 (1) saude (1) athena (1) cinnamon (1) phpunit (1) binaural (1) mysqli (2) database (25) windows (1) vala (1) json (2) oracle (1) mariadb (2) dev (12) webdev (21) s3 (4) storage (1) kitematic (1) gnome (2) web (1) intel (1) piada (1) cron (2) dba (9) lumen (1) ffmpeg (1) android (2) aplicativo (1) fedora (2) shell (2) bash (2) script (2) lider (1) htm (1) csv (1) dropbox (1) db (2) combustivel (2) haru (1) presenter (1) gasolina (1) MeioAmbiente (1) Grunt (0) biologia (1) programming (10) performance (1) brain (1) smartphones (1) telefonia (1) privacidade (1) opensource (1) microg (1) iode (1) ssh (1) zsh (1) terminal (1) dracula (1) spaceship (1) mac (1) idiomas (1) laptop (1) developer (4) api (1) data (1)

New Articles



Get Latest Updates by Email