首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >PHP分解和数组索引

PHP分解和数组索引
EN

Stack Overflow用户
提问于 2011-01-09 21:14:23
回答 4查看 19.4K关注 0票数 21

我怎样才能让下面的代码工作?

爆炸$a =

(‘s’,$str);

我只看到这样的解决方案:

分解$a =

(‘s’,$str);$a=$a;

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-01-09 21:30:59

正如其他人所说,PHP不同于JavaScript,因为它不能从函数返回中访问数组元素。你列出的第二种方法是可行的。您还可以使用current()reset()array_pop()函数获取数组的第一个元素,如下所示:

代码语言:javascript
复制
$a = current( explode( 's', $str ) ); //or
$a = reset( explode( 's', $str ) ); //or
$a = array_pop ( explode( 's', $str ) );

如果您想要消除由于多个分隔可能导致的轻微开销,您可以通过在其他参数后传递两个参数来将其限制设置为2。您也可以考虑使用str_pos和strstr:

代码语言:javascript
复制
$a = substr( $str, 0, strpos( $str, 's' ) );

这些选项中的任何一个都可以工作。

另一种编辑方式是使用list() (参见PHP doc)。有了它,你可以抓取任何元素:

代码语言:javascript
复制
list( $first ) = explode( 's', $str ); //First
list( ,$second ) = explode( 's', $str ); //Second
list( ,,$third ) = explode( 's', $str ); //Third
//etc.

这不是你的风格?您总是可以编写一个小的辅助函数来从返回数组的函数中获取元素:

代码语言:javascript
复制
function array_grab( $arr, $key ) { return( $arr[$key] ); }

$part = array_grab( explode( 's', $str ), 0 ); //Usage: 1st element, etc.

编辑:PHP5.4将支持数组取消引用,因此您将能够执行以下操作:

代码语言:javascript
复制
$first_element = explode(',','A,B,C')[0];
票数 34
EN

Stack Overflow用户

发布于 2011-01-09 21:18:02

你的第二个代码块是正确的。explode和其他函数不能返回完全形成的数组以供立即使用,因此您必须设置一个临时变量。在开发树中可能有代码可以做到这一点,但现在获取所需元素的唯一方法是临时变量。

票数 2
EN

Stack Overflow用户

发布于 2011-01-09 21:19:26

使用current

代码语言:javascript
复制
$a = current(explode('s', $str));

但我发现这很丑陋

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4639265

复制
相关文章

相似问题

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