0

我正在使用 codeigniter 库,并且陷入了困境。首先这是我的数组

Array (
    [0] => Array (
        [product_name] => some data
        [product_slug] => some data
        [price] => some Data...
        [sell_price] => 2000.00

    )

    [1] => Array (
        [product_name] => some data
        [product_slug] => some data
        [price] => some Data...
        [sell_price] => 2000.00
    )
)

现在这是我在控制器中的代码:

$this->load->model('product_model');
$data['product']=$this->product_model->get_product();
$this->load->view('show_product',$data);

这是我的型号代码

function get_product()
{
  return $this->db->query("SELECT * FROM dt_product")->result_array();
}

最终我的视图代码

<div class="featured_right_gallery_bellow">
                    <ul class="product_list">
                                        <?php foreach($product as $product)
                                        {?>
                    <li>
                    <div class="pro_name"><?php echo $product['product_name'];?></div>
                    </li>
                    <?php
                    }?>
                    </ul>
</div>

现在我的问题是,我想只显示 product_name 的前 20 个字母......但这里显示的是全名......

我知道我可以写一个 mysql 代码SELECT LEFT(product_name,20),sell_price,price FROM dt_product……但我不想那样做,因为表包含近 20 个属性,我必须多次更改查询……我想要的只是有人指出我关于如何使用偏移概念显示product_name的前20个字母的解决方案,

我尝试回显 $product['product_name'][20],但是使用 foreach 循环,它会抛出未定义索引的错误。

4

1 回答 1

1

尝试这个:

<div class="pro_name"><?php echo substr($product['product_name'], 0, 20);?></div>

在此处阅读功能:http substr(): //php.net/manual/en/function.substr.php

编辑:

如果您想直接在数组中进行编辑(我认为没有必要):

假设$array是数组:

Array (
    [0] => Array (
        [product_name] => some data
        [product_slug] => some data
        [price] => some Data...
        [sell_price] => 2000.00

    )

    [1] => Array (
        [product_name] => some data
        [product_slug] => some data
        [price] => some Data...
        [sell_price] => 2000.00
    )
)

然后这样做:

// Iterating through each of the elements of the array.
// $productArray gets loaded as each inner array value.
foreach ($array as $key => $productArray) {
    // The value of $array[$key] is the current inner array.
    // The substr() just gets the value of the product_name key and returns the first 20 characters.
    // To load the modified value, set $array[$key]['product_name'] to the modified value.
    $array[$key]['product_name'] = substr($productArray['product_name'], 0, 20);
}
于 2012-09-03T02:45:38.630 回答