키가 PHP에 삽입되는 방식으로 연관 배열을 주문할 수있는 방법이 있습니까?
-
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 소스의 실제 순서와 일치하지 않습니다. ...