키가 PHP에 삽입되는 방식으로 연관 배열을 주문할 수있는 방법이 있습니까?

StackOverflow https://stackoverflow.com/questions/1124679

  •  13-09-2019
  •  | 
  •  

문제

다음은 내가 의미하는 바의 예입니다.

배열이 있습니다.

array('type'=>'text', 
      'class'=>'input', 
      'name'=>'username', 
      'id'=>'username', 
      'value'=>'', 
      'size'=>'30', 
      'rows'=>'',
    'cols'=>'');

그런 다음, 나는 그것을 통해 돌출됩니다.

$input = '<input ';
    foreach($input_array as $key => $value) {
        if(isset($key) && !empty($key)) {
            $input .= $key . '="' . $value . '" ';
        }   
    }   
$input .= '/>';

나는 돌아 오기를 바라고있다 :

<input type="text" class="input" name="username" id="username" size="30" />

PHP의 SORT () 함수를 사용하여 사용하려고 시도했습니다. 내가 생각할 수있는 가장 가까운 것은 usort ()와 같은 것을 사용해야한다는 것입니다. 그러나 내가 원하는 것을 수행 할 함수를 작성하는 방법을 알아내는 데 어려움이 있습니다.

이 주제에 대한 조언은 대단히 감사하며 읽어 주셔서 감사합니다.

도움이 되었습니까?

해결책

이미 순서대로되어야합니다. PHP 배열이 정렬되어 요소가 삽입 한 순서대로 표시됩니다.

당신은 또한 전화해야합니다 empty() ~에 $value ~ 아니다 $key; $key 항상 비어 있지 않아야합니다. 당신은 또한 필요하지 않습니다 isset() 만큼 잘 empty(). 그 외에도 코드는 제대로 작동하며 원하는 출력을 생성합니다.

나는 또한 사용에주의를 기울일 것입니다 empty() 문자열 '0'에 대해 true가 반환되기 때문입니다. 이것은 무시할 유효한 매개 변수 값 일 수 있습니다. 대신 확인할 수 있습니다 strlen($value) > 0.

다른 팁

PHP의 대화 형 Commandline을 통해 다음 코드를 실행하면 톰 하이진술

이미 순서대로되어야합니다. PHP 배열이 정렬되어 요소가 삽입 한 순서대로 표시됩니다.

<?php
$a = array(
    'type'=>'text',
    'class'=>'input',
    'name'=>'username',
    'id'=>'username',
    'value'=>'',
    'size'=>'30',
    'rows'=>'',
    'cols'=>''
);
print_r($a);
/* 
Array
(
    [type] => text
    [class] => input
    [name] => username
    [id] => username
    [value] =>
    [size] => 30
    [rows] =>
    [cols] =>
) 
*/
foreach ($a as $k => $v) {
    echo $k . ' => ' . $v . "\n";
}
/* 
type => text
class => input
name => username
id => username
value =>
size => 30
rows =>
cols =>
*/

당신은 이것이 정확히 당신이 사용하고있는 코드이며 아무것도 없다고 확신합니다. 사고 에게 $input_array 창조와 반복 사이?

편집하다:

단순하고 어리석은 질문 : 결과 문자열이 어디에 있는지 확인합니까? $input 보이는 것 같아? 예를 들어 FireBug의 HTML Navigator에서 그렇게한다면 FireBug가 소스에서 생성 된 DOM 트리를 표시하므로 속성의 순서는 HTML 소스의 실제 순서와 일치하지 않습니다. ...

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top