PHP分离Foreach循环的值并存储到变量中



你好,我有一个数组和一个foreach循环,这在技术上工作得很好。这是我的代码。

foreach ($results as $result) {
    $data['manrat'][] = array(
        'manufacturer' => $result['manufacturer'],
        'mhref'        => $this->url->link('/info', 'manufacturer_id=' . $result['manufacturer_id'])
    );
}

<?php foreach($manrat as $manrate) { ?>
    <a href="<?php echo $manrate['mhref']; ?>"><?php echo $manrate['manufacturer'];?> </a>
<?php } ?>

给我一个这样的结果:

name1 name2 name3 name4 name5

我想将每个名字存储到不同的变量中。这可能吗?

我不太明白你的问题,但如果这是你的意思,那么这是我的答案。你可以通过在循环中添加赋值代码来存储不同的变量或数组,比如names[]:

<?php
$names = array();
foreach($manrat as $manrate) {
 $names[] = $manrate['manufacturer'];
}
?>

你可以得到名字作为数组的元素,如:$names[0], $names[1],…等。

我希望这回答了你的问题。

我将把这段代码重构成一个foreach循环,像这样:

$anchors = '';
foreach ($results as $result) {
    $anchors .= '<a href="' . $this->url->link('/info', 'manufacturer_id=' . $result['manufacturer_id']) . '">' . $result['manufacturer'] . '</a>';
}

和实际的HTML输出页面:

<?php echo $anchors ?>

使用内爆,如果你想把字符串变成数组使用爆炸

$array_to_string = ['a', 'b', 'c', 'd', 'e', 'f', 'g'];
$store_to_string =  implode(',',$array_to_string ); // a,b,c,d,e,f,g

最新更新