当前位置: 首页> 最新文章列表> PHP 怎么用 substr 截取数组中某个字符串元素的指定内容?

PHP 怎么用 substr 截取数组中某个字符串元素的指定内容?

gitbox 2025-06-22

在 PHP 中,substr 函数是一个非常常用的字符串处理函数,用来截取字符串的一部分。当我们需要从数组中的某个字符串元素提取指定部分时,substr 就能派上用场。本文将通过一个示例来讲解如何使用 substr 函数来截取数组中某个字符串元素的指定内容。

什么是 substr 函数?

substr 函数用于返回字符串的一部分。其基本语法如下:

<span><span><span class="hljs-title function_ invoke__">substr</span></span><span>(</span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$string</span></span><span>, </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$start</span></span><span>, </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$length</span></span><span> = </span><span><span class="hljs-literal">null</span></span><span>): </span><span><span class="hljs-keyword">string</span></span><span>
</span></span>
  • $string: 输入的原始字符串。

  • $start: 截取开始的位置,可以是负数,表示从字符串末尾开始。

  • $length: 截取的长度(可选)。如果不指定,则截取到字符串的结尾。如果是负数,则从后往前计算。

如何在数组中使用 substr

假设我们有一个数组,数组中的每个元素都是一个字符串,我们想要从某个特定元素中截取一部分内容。我们可以通过以下步骤来实现这一操作。

示例:从数组中的某个元素截取指定部分

假设我们有如下的数组,每个元素是一个包含日期时间的字符串,我们需要从每个元素中提取出日期部分。

<span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// 定义一个包含日期时间字符串的数组</span></span><span>
</span><span><span class="hljs-variable">$dateArray</span></span><span> = [
    </span><span><span class="hljs-string">'2025-06-18 14:30:00'</span></span><span>,
    </span><span><span class="hljs-string">'2023-09-12 09:45:00'</span></span><span>,
    </span><span><span class="hljs-string">'2021-12-25 17:00:00'</span></span><span>
];

</span><span><span class="hljs-comment">// 遍历数组,使用 substr 截取日期部分</span></span><span>
</span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$dateArray</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$date</span></span><span>) {
    </span><span><span class="hljs-comment">// 截取前 10 个字符,即“YYYY-MM-DD”部分</span></span><span>
    </span><span><span class="hljs-variable">$datePart</span></span><span> = </span><span><span class="hljs-title function_ invoke__">substr</span></span><span>(</span><span><span class="hljs-variable">$date</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-number">10</span></span><span>);
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"日期部分: <span class="hljs-subst">$datePart</span></span></span><span>\n";
}
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

运行结果:

<span><span><span class="hljs-section">日期部分: 2025-06-18</span></span><span>
</span><span><span class="hljs-section">日期部分: 2023-09-12</span></span><span>
</span><span><span class="hljs-section">日期部分: 2021-12-25</span></span><span>
</span></span>

在这个示例中,我们通过 substr($date, 0, 10) 来从每个日期时间字符串中提取出前 10 个字符(即“YYYY-MM-DD”格式的日期部分)。

进一步的应用

截取特定位置的字符串

如果我们只需要从字符串中的某个特定位置截取内容,可以使用 substr 来定位。例如,如果我们需要从日期时间字符串中截取时间部分(即“HH:MM:SS”),可以修改 substr 的参数如下:

<span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$dateArray</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$date</span></span><span>) {
    </span><span><span class="hljs-comment">// 截取从第 11 个字符开始的后 8 个字符,即时间部分 "HH:MM:SS"</span></span><span>
    </span><span><span class="hljs-variable">$timePart</span></span><span> = </span><span><span class="hljs-title function_ invoke__">substr</span></span><span>(</span><span><span class="hljs-variable">$date</span></span><span>, </span><span><span class="hljs-number">11</span></span><span>, </span><span><span class="hljs-number">8</span></span><span>);
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"时间部分: <span class="hljs-subst">$timePart</span></span></span><span>\n";
}
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

运行结果:

<span><span><span class="hljs-section">时间部分: 14:30:00</span></span><span>
</span><span><span class="hljs-section">时间部分: 09:45:00</span></span><span>
</span><span><span class="hljs-section">时间部分: 17:00:00</span></span><span>
</span></span>

使用负数索引

substr 函数支持负数作为 $start 参数,负数表示从字符串的末尾开始计算。例如,substr($string, -5) 会返回字符串的最后 5 个字符。

假设我们有一个包含 URL 的数组,我们想要截取 URL 的文件扩展名(比如 .php, .html 等),可以通过负数索引来实现:

<span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-variable">$urls</span></span><span> = [
    </span><span><span class="hljs-string">'https://example.com/index.php'</span></span><span>,
    </span><span><span class="hljs-string">'https://example.com/about.html'</span></span><span>,
    </span><span><span class="hljs-string">'https://example.com/contact.php'</span></span><span>
];

</span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$urls</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$url</span></span><span>) {
    </span><span><span class="hljs-comment">// 从字符串末尾截取 4 个字符,获取文件扩展名</span></span><span>
    </span><span><span class="hljs-variable">$extension</span></span><span> = </span><span><span class="hljs-title function_ invoke__">substr</span></span><span>(</span><span><span class="hljs-variable">$url</span></span><span>, -</span><span><span class="hljs-number">4</span></span><span>);
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"文件扩展名: <span class="hljs-subst">$extension</span></span></span><span>\n";
}
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

运行结果:

<span><span><span class="hljs-section">文件扩展名: .php</span></span><span>
</span><span><span class="hljs-section">文件扩展名: .html</span></span><span>
</span><span><span class="hljs-section">文件扩展名: .php</span></span><span>
</span></span>

总结

通过 substr 函数,PHP 提供了强大的字符串截取功能。无论是从数组中的字符串元素中提取特定部分,还是使用负数索引从字符串末尾截取内容,substr 都能高效地完成任务。根据实际需求,我们可以灵活调整 $start$length 参数,以便精确截取所需的字符串内容。