【问题标题】:PHP Search for arrays and extract comma [closed]PHP搜索数组并提取逗号[关闭]
【发布时间】:2020-12-26 01:51:27
【问题描述】:

我有一个数组

Array (
    [1]=>123,456,789,3255
    [2]=>585,478,437,1237
)

搜索文本 = 12

我想要的输出 -> 123,1237

我应该走哪条路?

$array = array();
array_push($array,'1234',534,75,746);
array_push($array,'164',574,752,755);
array_push($array,'154',58,754,76);

$search_text = '75';

I want Output = 

75,752,755,754

【问题讨论】:

  • 任何代码尝试?
  • 很遗憾我还没有写任何代码,但是系列和我想要的很明显
  • 但对你来说不是很明显?
  • 我添加了我的代码
  • I want Output 仍然不是代码尝试。

标签: php arrays search


【解决方案1】:

您可以使用strpos 和一个循环来做到这一点。

$numbers = array();
array_push($numbers,'1234', 534, 75, 746);
array_push($numbers,'164', 574, 752, 755);
array_push($numbers,'154', 58, 754, 76);

$searchNumber = '75';

$output = [];

foreach ($numbers as $number) {
    if (strpos((string) $number, $searchNumber) !== false) {
        $output[] = $number;
    }
}

// 75, 752, 755, 754
echo implode(", ", $output);

如果您使用的是 PHP 8,您甚至可以将 strpos 替换为 str_contains 函数

if (str_contains($number, $searchNumber)) { 
    $output[] = $number;
}

RFC

str_contains

【讨论】:

  • 因为原始数组中有多种类型。我只是要把它们转换成一个字符串,因为你只是在寻找字符而不是数字。在对它们使用 strpos 之前,我已经编辑了原始答案以将所有数字转换为字符串。
【解决方案2】:

试试这个:

$result = [];
$array = [];
$toSearch = '75';
array_push($array,'1234',534,75,746);
array_push($array,'164',574,752,755);
array_push($array,'154',58,754,76);
// If your array is one dimension
$result = array_filter($array, function($el) use ($toSearch) {
  return strpos((string) $el, (string) $toSearch);
});
// For 2D array:
foreach ($array as $cur) {
  $result = array_merge($result, array_filter($cur, function($el) use ($toSearch) {
    return strpos((string) $el, (string) $toSearch);
  }));
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-20
    • 1970-01-01
    • 2013-06-02
    • 1970-01-01
    • 1970-01-01
    • 2016-07-09
    • 2023-03-15
    相关资源
    最近更新 更多