0
foreach ($prefs as $who => $pref) {
 if($who != 'public'){
  $team_users .=$who.',';
  }
 }       
echo $team_users;

テキスト「public」を含まない配列からのデータのみを表示したいのですが、場合によっては publicXX や public1234 などになる可能性があります。

4

7 に答える 7

2

array_filter()これを実現するためにコールバックを使用できます。

$result = array_filter($prefs, function($item) {
    return (strpos($item, 'public') === FALSE);
});
echo implode(',', $result);
于 2013-11-13T20:51:57.783 に答える
1

http://us3.php.net/strpos

if (strpos($who, 'public') === false) {
  //some code
} else {
  //some code
}
于 2013-11-13T20:53:05.573 に答える
0

私は正規表現でそれを行います。

$pattern = '/public/'; 

if(preg_match($pattern,$who)){
//skip to the next entry
}
于 2013-11-13T20:55:11.037 に答える
0

I'd like to only display data from the array that does not contain the text 'public' in some cases it could be publicXX or public1234, etc.

変化する:

if($who != 'public'){...}

これに:

if(strpos($who, 'public') !== false){...}
于 2013-11-13T20:51:37.117 に答える
0
foreach ($prefs as $who => $pref) {
    if(strpos($who, 'public') !== false){
        $team_users .=$who.',';
    }
}       
echo $team_users;
于 2013-11-13T20:52:18.837 に答える
0

次のようなことを試すことができます:

foreach ($prefs as $who => $pref) {
   if(!preg_match("/public/i", $who)){
       $team_users .= $who.',';
   }
} 
于 2013-11-13T20:53:34.020 に答える
0
<?php

$a = array('public1', 'asdqwe', 'as33publics', 'helloworld');

$text = implode(', ', array_filter($a, function($v) {
    return strstr($v, 'public') === false;
}));

echo $text;
于 2013-11-13T20:54:23.887 に答える