2017-04-10 7 views
-1

각 사용자에 대한 설명이있는 사용자가 많기 때문에이 설명을 배열에 추가하려고합니다. 그런 다음 배열을 읽고 각 설명을 분할하고 결과를 변수로 설정하려고합니다. 예 설명은 다음과 같습니다배열에 추가 한 다음 항목을 출력하는 방법은 무엇입니까?

italian, mexican 또는

french, american 내가 현재 무엇을하고 무엇을 :

<?php 
    $stack = array(); 
    $blogusers = get_users('orderby=nicename&role=author'); 
    foreach ($blogusers as $user) { 
     array_push($stack, $user->user_description); 
    } 
    $out = array_map('trim', explode(',', $stack)); 
?> 

그럼 난

<ul> 
    <li><?php echo $out[0]; ?></li> 
    <li><?php echo $out[1]; ?></li> 
    <li><?php echo $out[2]; ?></li> 
    <li><?php echo $out[3]; ?></li> 
</ul> 

을하지만 어떤 결과 값 목록을 가져올 수

UPDATE

시도는 $stack을 살펴 경우

$stack = array(); 
$blogusers = get_users('orderby=nicename&role=author'); 
foreach ($blogusers as $user) { 
    $users = array_map('trim', explode(',', $user->user_description)); 
    array_push($stack, $users); 
} 

그런 다음

<li><?php echo $stack[0]; ?></li> 
<li><?php echo $stack[1]; ?></li> 
<li><?php echo $stack[2]; ?></li> 
+1

왜 $ stack을 (를) 폭발합니까? 나는 당신이 user_description을 폭발시킬 필요가 있다고 생각한다. – jh1711

+0

내가 설명하고있는 각 단어를 다듬어 폭발시키고 싶기 때문에 이탈리아어, 미국식 ... –

+0

@ jh1711 시도했습니다 \t $ stack = array(); \t $ blogusers = get_users ('orderby = nicename & role = author'); \t foreach ($ blogusers $ user) { \t \t $ users = array_map ('trim', explode (',', $ user-> user_description))); \t \t array_push ($ users, $ stack); \t} 그런 다음 echo $ stack [0]; –

답변

3

을 각 설명을 분해 한 다음 분해로 반환 된 각 요소를 배열에 밀어 넣으십시오. 이것은 당신이 복제에 신경 쓰지 않는다고 가정합니다.

$stack = array(); 
$blogusers = get_users('orderby=nicename&role=author'); 
foreach ($blogusers as $user) { 
    $descTokens = explode(',', $user->user_description); 
    $stack = array_merge($stack, $descTokens); 
} 

<li><?php echo $stack[0]; ?></li> 
<li><?php echo $stack[1]; ?></li> 
<li><?php echo $stack[2]; ?></li> 
+0

훌륭하고, 간단하고 간단합니다. 고마워요. –

+2

루프 대신에'array_merge()'를 사용할 수 있습니다. – miken32

+0

아니, 실제로 통계를 만들려면이 모든 일을하고있는 배열에 값을 반복해야 좋은지. 실제로 같은 값의 총 수를 얻을 수있는 방법이 있습니까? '2' 이탈리아처럼? –

2

루프가 핀 후

<?php 
$stack = [ 
    "italian, mexican", 
    "french, american", 
    "canadian, irish", 
]; 

당신을 통해이 실행 폭발하면

, 당신은 당신이 그것을 배열 전달하고 있기 때문에 아무것도 얻을하지 않을거야 : ished, 당신은이에 상응하는 뭔가를해야합니다. 실제로 적절한 오류보고가 설정되어 있다면 문자열 대신 배열을 전달하는 경고가 표시됩니다. 나는 당신이하고 싶은 것은이 생각 : 당신이 실제로 별도의 변수이 필요한 경우

<?php 
    $blogusers = get_users('orderby=nicename&role=author'); 
    foreach ($blogusers as $user) { 
     $out[] = $user->user_description; 
    } 
?> 
<li><?=$out[0]?></li> 
<li><?=$out[1]?></li> 
<li><?=$out[2]?></li> 
... 

, 당신이 그것을 explode() 수 있지만 출력 페이지에 배열 할 수 없습니다 :

<?php 
    $blogusers = get_users('orderby=nicename&role=author'); 
    foreach ($blogusers as $user) { 
     $out[] = explode(",", $user->user_description); 
    } 
?> 
<li><?=$out[0][0]?></li> 
<li><?=$out[0][1]?></li> 
<li><?=$out[1][0]?></li> 
<li><?=$out[1][1]?></li> 
... 
+0

그래도 문제가 해결되지 않으면 각 설명이 개별 출력으로 표시되지 않습니다. "이탈리아, 미국"등등.이 단어들 각각을 나눠서 별도의 목록으로 나열 할 수 있어야합니다. –

+0

이미 업데이트되었습니다! – miken32

+0

우수한 덕분에 많이,이 작품을하지만 다른 답변을 받아 들였고, 그것을 처리하는 간단하고 더 가까이에있는 것처럼 –