首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >仅输出部分基于初始字符的数组

仅输出部分基于初始字符的数组
EN

Stack Overflow用户
提问于 2019-07-24 19:25:57
回答 4查看 43关注 0票数 0

我有一个数组$myArr['words'],它包含以下格式的数据:

代码语言:javascript
复制
Array (
[above-the-fold] => Array
  (
    [term] => Above the fold
    [desc] => The region of a Web ...
  )

[active-voice] => Array
  (
    [term] => Active voice
    [desc] => Makes subjects do ...
  )

[backlinks] => Array
  (
    [term] => Backlinks
    [desc] => Used on content ....
  )
)

我输出的内容如下:

代码语言:javascript
复制
foreach($myArr['words'] as $k => $v) {
  echo '
  <a href="#'.$k.'">
    '.$v['term'].'
  </a>';
}

如何添加约束以输出仅以特定字符开头的值$k。例如:

代码语言:javascript
复制
$ltr = 'a';
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2019-07-24 19:32:03

代码语言:javascript
复制
$test = ['abc'=>'1', 'def'=>'2', 'deh'=>'3'];

foreach($test as $k => $v){
    if($k[0] == 'd') {
        echo $v . "\r\n";
    }
}

https://3v4l.org/e7I8m

票数 1
EN

Stack Overflow用户

发布于 2019-07-24 19:56:42

您还可以使用更灵活的方法:通过正则表达式进行匹配。

代码语言:javascript
复制
<?php

$myArr = [
    'zzzz' => [
        'term' => 'zuzuzu',
        'desc' => 'zazaza ...'
    ],
    'above-the-fold' => [
        'term' => 'Above the fold',
        'desc' => 'The region of a Web ...'
    ],
    'active-voice' => [
        'term' => 'Active voice',
        'desc' => 'Makes subjects do ...'
    ],
    'backlinks' => [
        'term' => 'Backlinks',
        'desc' => 'Used on content ....'
    ]
];

$reg = "/^a/";   // Key starts with "a" 

foreach (preg_grep($reg, array_keys($myArr)) as $k => $v)
    echo "<a href=\"#$v\" title=\"{$myArr[$v]['desc']}\">{$myArr[$v]['term']}</a>\n";

回声:

代码语言:javascript
复制
<a href="#above-the-fold" title="The region of a Web ...">Above the fold</a>
<a href="#active-voice" title="Makes subjects do ...">Active voice</a>

在线PHP的实例化

https://www.php.net/manual/en/function.preg-grep.php

https://www.php.net/manual/en/function.array-keys.php

票数 1
EN

Stack Overflow用户

发布于 2019-07-24 19:37:19

您可以检查0位置的键:

代码语言:javascript
复制
if(strpos($k, 'a') === 0) {
    //echo
}

//or

if($k[0] === 'a') {
    //echo
}

或者在foreach上过滤数组和$result

代码语言:javascript
复制
$result = array_filter($myArr['words'],
                       function($v) { return $v[0] === 'a'; },
                       ARRAY_FILTER_USE_KEY);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57189962

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档