dongmu1951 2014-07-18 03:30
浏览 19
已采纳

尝试循环遍历数组以返回文件路径名称

I'm new to PHP so please bear with me. I'm practicing coding for real situations so I mimicked a database by storing my image paths in an associate array so that I could create a function that would return the path name and thus just call the function to echo out my image.

My problem is it's only returning the last item in my array. I need the function to loop through the array for every item and return the file path so that I can store it in $images and then echo that out where I need to.

CODE:

<?php


$images = array(
array('name'  => 'image_00', 'path'  =>  'images/image-00.jpg'),
array('name'  => 'image_01', 'path'  =>  'images/image-01.jpg'),
array('name'  => 'image_02', 'path'  =>  'images/image-02.jpg')
);

function returnPath($filename, $arr) {

    $path = array();

    foreach ($arr as $file) {
        $path = $file[$filename];
    }

    return $path;
}

$images = returnPath('path', $images);

?>

<!DOCTYPE html>
<html>
<head>
    <title>Images Project</title>
</head>
<body>
    <img src="<?php echo $images; ?>"/>
</body>
</html>

  • 写回答

2条回答 默认 最新

  • dpiz9879 2014-07-18 03:33
    关注

    The issue is that you're over-writing the $path variable in your returnPath function.

    What you want is this:

    foreach ($arr as $file) {
        $path[] = $file[$filename];
    }
    

    Which in turn will give you an array of the paths that you can itterate over like this:

    $images = returnPath('path', $images);
    
    <body>
    <?php 
    foreach($images as $image) {
        echo '<img src="'. $image .'" />';
    }
    ?>
    </body>
    

    I also strongly agree with koala_dev's comment. The function isn't really effective/useful.

    Since you already have the $images array, just:

    foreach($images as $img) {
        echo $img['path'];
    }
    

    Or even make the function useful by returning formatted html <img> tags to print to the HTML DOM :-)

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 Oracle中如何从clob类型截取特定字符串后面的字符
  • ¥15 想通过pywinauto自动电机应用程序按钮,但是找不到应用程序按钮信息
  • ¥15 MATLAB中streamslice问题
  • ¥15 如何在炒股软件中,爬到我想看的日k线
  • ¥15 51单片机中C语言怎么做到下面类似的功能的函数(相关搜索:c语言)
  • ¥15 seatunnel 怎么配置Elasticsearch
  • ¥15 PSCAD安装问题 ERROR: Visual Studio 2013, 2015, 2017 or 2019 is not found in the system.
  • ¥15 (标签-MATLAB|关键词-多址)
  • ¥15 关于#MATLAB#的问题,如何解决?(相关搜索:信噪比,系统容量)
  • ¥500 52810做蓝牙接受端