PHP爆炸函数int

时间:2018-03-29 14:16:47

标签: php arrays

我需要有关PHP explode()功能的所有观众。

$line = 'dd=541;nn=874;cc=21;mm=95;tt=41';
$lineexp = explode(';', $line);
print_r($lineexp);

这将产生以下输出:

[
    0 => 'dd=541',
    1 => 'nn=874',
    2 => 'cc=21',
    3 => 'mm=95',
    4 => 'tt=41'
]

如何才能将数组的值改为数组呢?

期望的输出:

[
    0 => 541,
    1 => 874,
    2 => 21,
    3 => 95,
    4 => 41
]

3 个答案:

答案 0 :(得分:3)

只需一个选项即可。在substr字符之后迭代数组和=

$line = 'dd=541;nn=874;cc=21;mm=95;tt=41';
$lineexp = explode(';', $line);

$lineexp = array_map(function($item){
    return substr($item, strpos($item, '=')+1);
}, $lineexp);

答案 1 :(得分:1)

<?php 
$line= "dd=541;nn=874;cc=21;mm=95;tt=41"; 
$lineexp = explode(';', $line);

$farray=array();
foreach ($lineexp as $n){
 $nv = explode("=",$n)[1];
array_push($farray,$nv);
 }
var_dump($farray);

?>
我认为有些事情是这样的 http://sandbox.onlinephpfunctions.com/code/07a886132e8d0ae1c61f47997faa72d0cc33fd8f

答案 2 :(得分:1)

您可以使用array_map并使用=作为分隔符使用explode并返回包含该数字的第二部分[1]

$line= "dd=541;nn=874;cc=21;mm=95;tt=41";
$lineexp = array_map("expl", explode(';', $line));

function expl($value) {
    return explode('=', $value)[1];
};

或者使用内联匿名函数:

$lineexp = array_map(function ($a) {
    return explode('=', $a)[1];
}, explode(';', $line));

var_dump($lineexp);

那会给你:

array(5) {
  [0]=>
  string(3) "541"
  [1]=>
  string(3) "874"
  [2]=>
  string(2) "21"
  [3]=>
  string(2) "95"
  [4]=>
  string(2) "41"
}