【问题标题】:How to convert a string of numbers into an array?如何将一串数字转换为数组?
【发布时间】:2015-07-08 13:28:35
【问题描述】:

我有一个字符串,例如1398723242。我正在尝试检查这个字符串并得到奇数,在这种情况下是13973

我在如何将此字符串放入数组时遇到问题。将字符串放入数组后,我知道我必须遍历数组,如下所示:

foreach($array as $value){
    if($value % 2 !== 0){
        echo $value;
    }
}

那么任何人都可以帮助第一部分“如何将上述字符串放入数组中,以便我可以评估上述循环中的每个数字?”

【问题讨论】:

  • 仅供参考:您可以接受对您帮助最大并解决了您的问题的答案 (meta.stackexchange.com/q/5234)
  • @Rizier123,明白了,谢谢。

标签: php arrays string


【解决方案1】:

这应该适合你:

只需使用str_split() 将您的字符串拆分为一个数组。然后您可以使用array_filter() 过滤掉偶数。例如

<?php

    $str = "1398723242";
    $filtered = array_filter(str_split($str), function($v){
        return $v & 1;
    });
    echo implode("", $filtered);

?>

输出:

13973

【讨论】:

    【解决方案2】:

    Array map 是你的函数(与split 混合)

    $array  = array_map('intval', str_split($number));
    foreach($array as $value){
        if($value % 2 !== 0){
            echo $value;
        }
    }
    

    【讨论】:

      【解决方案3】:

      使用str_split()http://www.php.net/manual/en/function.str-split.php

      $string = "1398723242";
      $array = str_split($string);
      foreach($array as $value){
          if($value % 2 !== 0){
              echo $value;
          }
      }
      

      【讨论】:

        【解决方案4】:

        如果你想要字符串作为结果,不要转换为数组

        $str = "1398723242";
        echo preg_replace('/0|2|4|6|8/','', $str); //13973
        

        或者,更快

        echo str_replace(array(0,2,4,6,8),'', $str); //13973
        

        【讨论】:

          【解决方案5】:

          你必须知道字符串是否是一个字符数组。所以你可以迭代它:

          <?php
          $string = "1398723242";
          for($i=0; $i < strlen($string); ++$i){
              if($string[$i]=='....'){
                 $string[$i] = ''; // Just replace the index like this
              }  
          }
          ?>
          

          【讨论】:

          • 字符串来自输入字段的 POST 方法,但我只是提供了一个字符串作为示例,以了解如何将字符串放入数组中。现在问题已经解决了,谢谢。
          • 不算数($string) 应该是strlen($string)
          【解决方案6】:
          $str    =   '1398723242';
          
          $strlen = strlen($str);// Get length of thr string
          $newstr;
          for($i=0;$i<$strlen;$i++){ // apply loop to get individual character
              if($str[$i]%2==1){ // check for odd numbers and get into a string
                  $newstr .=  $str[$i]; 
              }
          }
          echo $newstr;
          

          【讨论】:

            猜你喜欢
            • 2015-04-23
            • 2013-03-18
            • 2021-06-14
            • 1970-01-01
            • 2023-03-18
            • 2022-01-24
            • 1970-01-01
            • 2011-02-28
            相关资源
            最近更新 更多