i have foreach function:
foreach ($result $result) { echo "<a href='" . $result . "'>" . $result . "</a><br>"; } which generates list this:
[spacer]_[timespacer]_fiveseconds.wav [trudy]_[0x06ddd12a]_i.wav [trudy]_[0x06ddd12a]_get.wav [spacer]_[timespacer]_halfsecond.wav [spacer]_[timespacer]_onesecond.wav i tried explode & split function returns whole list of:
array array what want achieve have foreach $result variable holds word/name in between first set of [] , variable holds second set of [] third variable holds between last _ , .wav. have these variables:
$result_classname = spacer $result_parent = timespacer $result_name = fiveseconds $result = [spacer]_[timespacer]_fiveseconds.wav which allow me do:
foreach ($result $result) { echo "<a class='" . $result_classname . "' href='" . $result . "'>" . $result_name . "</a><span>" . $result_parent . "</span><br>"; } how can achieve this?
first, don't want use same variable in foreach:
foreach ($result $result) { use different variable:
foreach ($result $value) { then, here non regex way handle this:
list($classname, $parent, $name) = explode('_', $value); $classname = trim($classname, '[]'); $parent = trim($parent, '[]'); $name = pathinfo($name, pathinfo_filename); - explode on underscores
- trim
[]characters each end - get filename without extenstion
or simple regex:
preg_match('/\[([^\]]+)\]_\[([^\]]+)\]_([^.]+).*/', $value, $matches); then use print_r($matches); see ones use ($matches[0], etc.).
Comments
Post a Comment