なぜこれを行っているかについての参考として、SOAP / AXL WSDL API を使用しようとしています。私が今持っている呼び出しで作業している部分は、アクセスできるように配列構造を構築することです。
参考までに、API 要件はこちらです。私が抱えている課題は、上位の配列要素ごとにメンバー配列を構築することです。 https://developer.cisco.com/media/axl-schema-11-0/Files/AXLSoap_AddCssReq.html#Link68
配列構成:
`$cssnames = array(
array("name"=>"US-420-blah Gateway",
"description"=>"US-420 Gateway CSS",
"members"=>array(
array(
"member"=>array(
"Index"=>"1",
"Routeparition"=>"fancyParition"),
array("member"=>array(
"Index"=>"2",
"Routeparition"=>"otherpartition")
)))),
array("name"=>"US-420-blah Internal Local DN CallFwd",
"description"=>"US-420 CSS for Call Forward",
"members"=>array(
array(
"member"=>array(
"Index"=>"1",
"Routeparition"=>"fancyParition"),
array("member"=>array(
"Index"=>"2",
"Routeparition"=>"otherpartition")
)))),
array("name"=>"US-420-blah Internal Local LD DN CallFwd",
"description"=>"US-420 for Call Forward LD Allowed",
"members"=>array(
array(
"member"=>array(
"Index"=>"1",
"Routeparition"=>"fancyParition"),
array("member"=>array(
"Index"=>"2",
"Routeparition"=>"otherpartition")
)))),
array("name"=>"US-420-blah Phones Device",
"description"=>"US-420 Device CSS",
"members"=>array(
array(
"member"=>array(
"Index"=>"1",
"Routeparition"=>"fancyParition"),
array("member"=>array(
"Index"=>"2",
"Routeparition"=>"otherpartition")
)))),
array("name"=>"US-420-blah Phones Device Internal Only",
"description"=>"US-420 Device CSS Internal",
"members"=>array(
array(
"member"=>array(
"Index"=>"1",
"Routeparition"=>"fancyParition"),
array("member"=>array(
"Index"=>"2",
"Routeparition"=>"otherpartition")
)))));
foreach($cssnames['members'] as $items){
echo($items['0']['member'] . "</br>");
}`
ここでの目標は、ユーザーがforeach
各配列メンバーをループして、1 つの CSS の値全体を返すことができるようにすることです。したがって、完全な CSS は次のようになります。
array("name"=>"US-420-blah Gateway",
"description"=>"US-420 Gateway CSS",
"members"=>array(
array(
"member"=>array(
"Index"=>"1",
"Routeparition"=>"fancyParition"),
array("member"=>array(
"Index"=>"2",
"Routeparition"=>"otherpartition")
)))),
シスコのドキュメントによると、CSS には次の要素が含まれています。
- 名前
- 説明
- メンバー
メンバー自体には、次の複数のキー値のペアが含まれています。
- 索引
- RoutePartitionName
質問
- 配列構造は正しいですか? キーと値のペアが衝突するため、各「メンバー」は配列である必要があるため、そうすると思います。
- 可能であれば、foreach ループを使用して各 KVP にアクセスするにはどうすればよいですか?
- 私はこれについてすべて間違っていますか?
テスト ある程度の進歩を遂げ始めていますが、少し道に迷っています。配列には 5 つのレベルがあるため、5 回ループする必要があることは理にかなっています。どうすればよいかわからないのは、関心のある KVP のみを抽出することです。
セミワーキングリターン。
$cssnames = array("css_list"=>
array("name"=>"US-420-blah Gateway",
"description"=>"US-420 Gateway CSS",
"members"=>array(
array("member"=>array(
"Index"=>"1",
"Routeparition"=>"fancyParition"),
array("member"=>array(
"Index"=>"2",
"Routeparition"=>"otherpartition")
)))));
foreach($cssnames as $items=>$css){
foreach ($css as $name=>$test){
echo($test . "</br>");
foreach($test as $memberlist=>$member){
foreach($member as $memberitems=>$memberdetails){
foreach($memberdetails as $details=>$config){
echo($config . "</br>");
}
}
}
}
}
アップデート
それで、もう少し進歩。単一の配列アイテムを保持する配列があることに気付きました。とても無意味です。それを削除すると、もっと理にかなっているようです。私は今、より多くのテストに進んでいます。更新されたコード:
$cssnames = array("css_list"=>
array("name"=>"US-420-blah Gateway",
"description"=>"US-420 Gateway CSS",
"members"=>array(
array(
"Index"=>"1",
"Routeparition"=>"fancyParition"),
array(
"Index"=>"2",
"Routeparition"=>"otherpartition")
)));
foreach($cssnames as $level1){
echo($level1['name'] . "</br>");
echo($level1['description'] . "</br>");
foreach ($level1['members'] as $level2){
echo($level2['Index'] . "</br>");
echo($level2['Routeparition'] . "</br>");
}
}