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

当满足条件时将 $content 分解为数组

当满足条件时将 $content 分解为数组

PHP
开满天机 2023-09-08 21:30:54
我有一个包含类别名称的数组$categories_array。我有一个$content包含大字符串的变量(产品描述)我的意图是爆炸$content成一个数组( $content_array)。那很容易。内容上还包含类别名称问题如下:类别被命名为Kids and Baby我无法按单词进行爆炸,因为我想将内容保留kids and baby在同一个数组条目中。我也不能一直查询,因为这会占用资源。实现这样的目标的最佳方法是什么:这是原来的$内容:$content = "lorem ipsum bla bla bla cat1 bla bla bla kids and baby";这是我的类别数组:$categories_array = array(    "cat1",    "kids and baby",    "cat3",    ...);这是我的预期输出:$content_array = array(    "word1",    "word2",    "kids and baby",    "word3");谢谢您的指导。
查看完整描述

1 回答

?
炎炎设计

TA贡献1808条经验 获得超4个赞

对于每个类别,搜索该类别的内容,并将空格替换为内容中不存在的字符。


然后按空格分解内容(这样它将把类别文本保持在一起)。


稍后只需将该字符替换回空格即可。


<?php


$content = "lorem ipsum bla bla bla cat1 bla bla bla kids and baby";


$categories_array = array(

    "cat1",

    "kids and baby",

    "cat3",

);  


foreach($categories_array as $category) {

  $content = str_replace($category, str_replace(' ', '·', $category), $content);

}


$content_array = explode(' ', $content);


$content_array = array_map(function ($content) {return str_replace('·', ' ', $content);}, $content_array);


var_dump($content_array);

输出:


array(10) {

  [0]=>

  string(5) "lorem"

  [1]=>

  string(5) "ipsum"

  [2]=>

  string(3) "bla"

  [3]=>

  string(3) "bla"

  [4]=>

  string(3) "bla"

  [5]=>

  string(4) "cat1"

  [6]=>

  string(3) "bla"

  [7]=>

  string(3) "bla"

  [8]=>

  string(3) "bla"

  [9]=>

  string(13) "kids and baby"

}


查看完整回答
反对 回复 2023-09-08
  • 1 回答
  • 0 关注
  • 80 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信