0

I have this problem. I want to echo the value of the specific index of an array. my code is this.

<?php
$str = 'test1:val1,test2:val2,test3:val3'
$ex1 = explode(',',$str);
foreach($ex1 as $val){
  $ex2 = explode(':',$val);
  foreach($ex2 as $val2){
    echo $val2.'<br>';
  }
}

//the output will be
/*
test1
val1
test2
val2
test3
val3
*/
?>

But I want the output to be only test1,test2,test3. Plss someone help me.

2 Answers 2

2

Just get the substring with substr & strpos. Try with -

$str = 'test1:val1,test2:val2,test3:val3';
$ex1 = explode(',',$str);

foreach($ex1 as $val){
  $test = substr($val, 0, strpos($val, ':'));
  echo $test."<br>";
}

Or you can do this also -

$str = 'test1:val1,test2:val2,test3:val3';
$ex1 = explode(',',$str);
foreach($ex1 as $val){
  $ex2 = explode(':',$val);
  echo $ex2[0]."<br>";
}
Sign up to request clarification or add additional context in comments.

Comments

0

You've already accepted an answer, but you can skip a couple lines and do a preg_match_all():

$str = 'test1:val1,test2:val2,test3:val3';
preg_match_all('/([^\,\:]{1,})\:([^\,\:]{1,})/',$str,$match);
echo implode(",<br />",$match[1]);

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.