2016-02-13 110 views
-2

我有一个像如何从字符串获得子字符串在Php

$totalValues ="4565:4,4566:5,4567:6"; 

现在字符串我想':'昏迷分离后仅值,即我想串像$SubValues = "4,5,6"

感谢

+0

为什么人们赋予下坡实时开发问题 – Shekkar

+0

您的问题有没有试图尝试的迹象也没有研究工作 – Andrew

回答

2

使用array_map,implodeexplode

$totalValues ="4565:4,4566:5,4567:6"; 

echo implode(',',array_map(function($val){ 
    $val = explode(':',$val); 
    return $val[1]; 
},explode(',',$totalValues))); 
+0

感谢@roullie,你救了我的时间,可能你简单地解释你的代码。 – Shekkar

+0

我可以得到像“4565,4566,4567”这样的字符串吗?当然是 – Shekkar

+0

。改变'返回$ val [1];'到'返回$ val [0];' – roullie

2

试试这个代码,它正在

<?php 
    $str="4565:4,4566:5,4567:6";; 
    $data =explode(",", $str); 
    echo '<pre>'; 
    print_r($data); 
    $newstring=""; 
    foreach ($data as $key => $value) { 
     preg_match('/:(.*)/',$value,$matches); 
     $newstring.=$matches[1].","; 

    } 
    echo rtrim($newstring,","); 

输出 o/p image

我已经更新了我的代码,请检查一下

<?php 
    $str="4565:4,4566:5,4567:6"; 
    $data1=explode(",", $str); 
    $newstring1=""; 
    foreach ($data1 as $key1 => $value) { 
     preg_match('/(.*?):/',$value,$matches); 
     $newstring1.=$matches[1].","; 

    } 
    echo rtrim($newstring1,","); 

O/P

+0

谢谢@Sharma Vikram,现在我想要“4565,4566,4567”字符串,请帮助我 – Shekkar

+0

请检查它 –

0

你可能想这样说:

$totalValues ="4565:4,4566:5,4567:6"; 
$temp = explode(':', $totalValues); 
$subValues = $temp[1][0]; 
$x = count($temp); 
for ($i = 2; $i < $x; $i++) { 
    $subValues .= ',' . $temp[$i][0]; 
} 
echo $subValues;