0

この構文について頭を悩ませることはできません。私は配列を持っていて、$fooそれを関数内で呼び出します: wp_list_pages($foo);(これは wordpress サイトです)。

このコードをオンラインで見つけましたが、機能しません...これらの両方の方法を試しましたが、何もしないようです。誰でも助けることができますか?

 <?php $mystring = $foo;
list ($before,$after) = split (',', $mystring);
echo $before; 
?>
<?php wp_list_pages( $foo ); ?> 

またはこれ:

<?php $has_comma = (stristr($foo, ",")>-1) ? 1 : 0;
if ($has_comma) {
list ($before,$after) = split (',', $foo);
$foo = $before;
} ?>

<?php wp_list_pages( $foo ); ?> 
4

4 に答える 4

4
if (false !== ($pos = strpos($foo, ','))) {
    $foo = substr($foo, 0, $pos);
}

または、昏睡状態が常にあると確信している場合は、より簡単にすることができます。

$foo = substr($foo, 0, strpos($foo, ','));
于 2012-11-14T19:52:31.090 に答える
0

$foo に「これは短くて退屈な文です」などの文字列が含まれていると仮定すると、次のようになります。

list($before,$after) = split(',',$mystring)
//$before => "This is a short" 
//$after => "boring sentence"
echo $before; //prints "This is a short"

この動作が見られない場合は、$foo に何らかの文字列が含まれていることを確認する必要があります。

于 2012-11-14T19:51:41.537 に答える
0

その例は少し複雑すぎます。より簡単なものを次に示します。

<?php 
$mystring = "a,b,c,d egg";
$n = strpos($mystring, ',');
echo substr($mystring, 0, $n)
?>

これは、$mystring の最初の "," のインデックスを見つけて、その時点までの文字列を取得するだけです。

配列ベースの例が必要な場合は、split が非推奨になっているため、explode を使用する例を次に示します。

<?php 
$mystring = "a,b,c,d egg";
$array = explode(',', $mystring);
echo $array[0];
?>

したがって、explode は $mystring を "," で分割し、"," で区切られた各項目が独自の要素になるようにします。当然、最初の項目は 0 番目のインデックスなので、カンマの後に切り捨てる方法です。

于 2012-11-14T19:53:25.650 に答える
0

split()は非推奨です。preg_split()、またはstr_split()を使用してみてください。php マニュアルを参照してください: http://www.php.net/manual/ro/function.split.php

于 2012-11-14T19:53:55.957 に答える