为了账号安全,请及时绑定邮箱和手机立即绑定

合并由函数创建的数组

合并由函数创建的数组

PHP
杨魅力 2022-10-28 15:11:01
我有一个 PHP 数组main_array,在我的模板文件中我有一个访问这个数组的函数。在该函数中,我有另一个函数可以main_array根据实际前端页面上查询的任何键获取和显示值。main_array我使用它来获取基于 URL 或页面 ID 或其他查询的元数据。示例:在前端页面中,我有$prod_id = [    ["query" => "prod-1"],    ["query" => "prod-2"]];在main_array我有$main_array = [    ["name" => "prod-1", "tags" => "lilac, rose, wood"],    ["name" => "prod-2", "tags" => "wood, plastic"]];在模板文件中,我有一个循环和查找函数,它获取相关产品的标签并为每个产品创建一个数组function lookup($lookup_value, $lookup_array, $lookup_column, $result_column) {    foreach ($lookup_array as $item) {            if ($item[$lookup_column] == $lookup_value) {                return $item[$result_column];            }    }    return false;}   foreach ($prod_id as $tags) {    $result = lookup($tags["query"],$main_array,"name","tags");}这很好用,它将使用两组标签创建两个数组。我遇到的问题是合并由查找函数创建的数组,这样我就可以获得唯一值 - 我不希望标签“木头”出现两次。我已经搞砸了array_merge一段时间,但它没有按预期输出。
查看完整描述

1 回答

?
慕田峪9158850

TA贡献1794条经验 获得超7个赞

我想你很接近了,只是少了几步


$unique_tags = [];

foreach ($prod_id as $tags) {


    $result = lookup($tags["query"],$main_array,"name","tags");


    // `tags` is a string, so explode it to get an array

    $result_as_array = explode( ',', $result );


    // merge like you mentioned

    $merged_array = array_merge( $unique_tags, $result_as_array );


    // make sure there's no duplicate entries

    $merged_array_no_duplicates = array_unique( $merged_array );


    // re-assign to the array where you want to store all tags

    $unique_tags = $merged_array_no_duplicates;



}


查看完整回答
反对 回复 2022-10-28
  • 1 回答
  • 0 关注
  • 89 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号