Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/240.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何将字符串转换为int,并将它们逐个字符拆分为另一个数组_Php - Fatal编程技术网

Php 如何将字符串转换为int,并将它们逐个字符拆分为另一个数组

Php 如何将字符串转换为int,并将它们逐个字符拆分为另一个数组,php,Php,使用此功能,prt_pattern341,0,打印输出 0 00 00 000 我一直在把341转换成整数,然后把它存储在每个数字上。下面是我想要的结果 array[0] = 3 array[1] = 4 array[2] = 1 我将为这个函数计划的流程是,将字符串转换为int并按字符存储,然后找到最大值。之后,使用2作为循环,第一个for循环是从最大的数字循环到1,第二个循环是循环数字,如果4=4,则打印0,否则打印并在数组[1]=1处打印值 希望有人能帮我做这件事。这应该行得通

使用此功能,prt_pattern341,0,打印输出

 0 
00 
00 
000
我一直在把341转换成整数,然后把它存储在每个数字上。下面是我想要的结果

array[0] = 3
array[1] = 4
array[2] = 1
我将为这个函数计划的流程是,将字符串转换为int并按字符存储,然后找到最大值。之后,使用2作为循环,第一个for循环是从最大的数字循环到1,第二个循环是循环数字,如果4=4,则打印0,否则打印并在数组[1]=1处打印值


希望有人能帮我做这件事。

这应该行得通。首先,我在转换为整数的字符串中为每个数字创建一个数组,然后使用max函数从中查找最大的数字

<?php
$array = (function ($str): array {
    $a = [];
    $strlen = strlen($str);
    for($i = 0; $i < $strlen; $i++) {
        $a[] = (int) $str[$i];
    }
    return $a;
})("3429");


var_dump($array);

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

var_dump(max($array)); //int(9)
这将创建一个数组,就像前面提到的一样


我觉得没有考虑那个函数很傻。

到目前为止你做了什么?@MohsenShakibafar:我一直在将字符串更改为int并单独存储。你为什么要先将字符串更改为int?使用str_split首先将字符串拆分为数字,然后将每个数字转换为int。@RussJ:正如我提到的,我一直在将str转换为int并存储在数组中。这是函数的第一步。在PHP中,通常不需要显式转换为int。如果您在需要数字的上下文中使用字符串,它将自动转换。您不使用str_split的原因是什么?是的,我没有认真考虑过。我将更新答案。使用str_split后,继续使用$array=int$array。它将把str转换成int@Barmar@pasklAfter str_split您将拥有一个数组,就像前面的答案一样。使用max$array,您可以从该数组中获得最大的数字。@LonelyToh您可以使用$array=array\u map'intval',$array将$array的所有元素转换为整数。
<?php
$array = (function ($str): array {
    $a = [];
    $strlen = strlen($str);
    for($i = 0; $i < $strlen; $i++) {
        $a[] = (int) $str[$i];
    }
    return $a;
})("3429");


var_dump($array);

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

var_dump(max($array)); //int(9)