Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zamiana klucz w tablicy dwuwymiarowej
Forum PHP.pl > Forum > PHP
rad11
Panowie czy macie jakis pomysl jak przeksztalcic ten skrypt zamieniajacy kolejnosc kluczy ale dla tablicy dwuwymiarowej?

  1.  
  2. public function actionChangePosition($tab, $v1, $v2) {
  3.  
  4. $k = array_keys($tab);
  5. $v = array_values($tab);
  6. $k1 = array_search($v1, $k);
  7. $k2 = array_search($v2, $k);
  8.  
  9.  
  10. $tmp = $k[$k1];
  11. $k[$k1] = $k[$k2];
  12. $k[$k2] = $tmp;
  13.  
  14. $tmp = $v[$k1];
  15. $v[$k1] = $v[$k2];
  16. $v[$k2] = $tmp;
  17.  
  18. return $tab = array_combine($k, $v);
  19.  
  20.  
  21. }
  22.  


chodzi o cos takiego mam tablice:

  1. array(37) {
  2. [0]=>
  3. array(52) {
  4. [0]=>
  5. string(0) ""
  6. [1]=>
  7. string(0) ""
  8. [2]=>
  9. string(0) ""
  10. [3]=>
  11. string(0) ""
  12. [4]=>
  13. string(0) ""
  14. [5]=>
  15. string(0) ""
  16. [6]=>
  17. string(0) ""
  18. [7]=>
  19. string(0) ""
  20. [8]=>
  21. string(0) ""
  22. [9]=>
  23. string(0) ""
  24. [10]=>
  25. string(0) ""
  26. [11]=>
  27. string(0) ""
  28. [12]=>
  29. string(0) ""
  30. [13]=>
  31. string(0) ""
  32. [14]=>
  33. string(0) ""
  34. [15]=>
  35. string(0) ""
  36. [16]=>
  37. string(0) ""
  38. [17]=>
  39. string(0) ""
  40. [18]=>
  41. string(0) ""
  42. [19]=>
  43. string(0) ""
  44. [20]=>
  45. string(0) ""
  46. [21]=>
  47. string(0) ""
  48. [22]=>
  49. string(0) ""
  50. [23]=>
  51. string(0) ""
  52. [24]=>
  53. string(0) ""
  54. [25]=>
  55. string(0) ""
  56. [26]=>
  57. string(0) ""
  58. [27]=>
  59. string(0) ""
  60. [28]=>
  61. string(0) ""
  62. [29]=>
  63. string(0) ""
  64. [30]=>
  65. string(0) ""
  66. [31]=>
  67. string(0) ""
  68. [32]=>
  69. string(0) ""
  70. [33]=>
  71. string(0) ""
  72. [34]=>
  73. string(0) ""
  74. [35]=>
  75. string(0) ""
  76. [36]=>
  77. string(0) ""
  78. [37]=>
  79. string(0) ""
  80. [38]=>
  81. string(0) ""
  82. [39]=>
  83. string(0) ""
  84. [40]=>
  85. string(0) ""
  86. [41]=>
  87. string(0) ""
  88. [42]=>
  89. string(0) ""
  90. [43]=>
  91. string(0) ""
  92. [44]=>
  93. string(0) ""
  94. [45]=>
  95. string(0) ""
  96. [46]=>
  97. string(0) ""
  98. [47]=>
  99. string(0) ""
  100. [48]=>
  101. string(0) ""
  102. [49]=>
  103. string(0) ""
  104. [50]=>
  105. string(0) ""
  106. [51]=>
  107. string(0) ""
  108. }
  109. [1]=>
  110. array(52) {
  111. [0]=>
  112. string(0) ""
  113. [1]=>
  114. string(0) ""
  115. [2]=>
  116. string(0) ""
  117. [3]=>
  118. string(0) ""
  119. [4]=>
  120. string(0) ""
  121. [5]=>
  122. string(0) ""
  123. [6]=>
  124. string(0) ""
  125. [7]=>
  126. string(0) ""
  127. [8]=>
  128. string(0) ""
  129. [9]=>
  130. string(0) ""
  131. [10]=>
  132. string(0) ""
  133. [11]=>
  134. string(0) ""
  135. [12]=>
  136. string(0) ""
  137. [13]=>
  138. string(17) "wartosc2"
  139. [14]=>
  140. string(0) ""
  141. [15]=>
  142. string(0) ""
  143. [16]=>
  144. string(0) ""
  145. [17]=>
  146. string(0) ""
  147. [18]=>
  148. string(0) ""
  149. [19]=>
  150. string(0) ""
  151. [20]=>
  152. string(0) ""
  153. [21]=>
  154. string(0) ""
  155. [22]=>
  156. string(0) ""
  157. [23]=>
  158. string(0) ""
  159. [24]=>
  160. string(0) ""
  161. [25]=>
  162. string(0) ""
  163. [26]=>
  164. string(0) ""
  165. [27]=>
  166. string(0) ""
  167. [28]=>
  168. string(0) ""
  169. [29]=>
  170. string(0) ""
  171. [30]=>
  172. string(0) ""
  173. [31]=>
  174. string(0) ""
  175. [32]=>
  176. string(0) ""
  177. [33]=>
  178. string(0) ""
  179. [34]=>
  180. string(0) ""
  181. [35]=>
  182. string(0) ""
  183. [36]=>
  184. string(0) ""
  185. [37]=>
  186. string(0) ""
  187. [38]=>
  188. string(0) ""
  189. [39]=>
  190. string(0) ""
  191. [40]=>
  192. string(0) ""
  193. [41]=>
  194. string(0) ""
  195. [42]=>
  196. string(0) ""
  197. [43]=>
  198. string(0) ""
  199. [44]=>
  200. string(0) ""
  201. [45]=>
  202. string(0) ""
  203. [46]=>
  204. string(0) ""
  205. [47]=>
  206. string(0) ""
  207. [48]=>
  208. string(0) ""
  209. [49]=>
  210. string(17) "wartosc1"
  211. [50]=>
  212. string(0) ""
  213. [51]=>
  214. string(0) ""
  215. }


i chce aby np: wartosc 1 zmienila sie miejscami z wartosc2
Pyton_000
rekurencja, if(is_array()) -> actionChangePosition($array, $v1, $v2) -> else dotychczasowe
rad11
Poradzilem sobie w ten sposob:

  1. public function actionChangePosition($matrix = false, $tab, $v0 = "",$v1, $v2) {
  2.  
  3. if($matrix == false){
  4.  
  5. $k = array_keys($tab);
  6. $v = array_values($tab);
  7.  
  8. $k1 = array_search($v1, $k);
  9. $k2 = array_search($v2, $k);
  10.  
  11. $tmp = $v[$k1];
  12. $v[$k1] = $v[$k2];
  13. $v[$k2] = $tmp;
  14.  
  15. return $tab = array_combine($k, $v);
  16. }else{
  17. $k = array_keys($tab[$v0]);
  18. $v = array_values($tab[$v0]);
  19.  
  20. $k1 = array_search($v1, $k);
  21. $k2 = array_search($v2, $k);
  22.  
  23. $tmp = $v[$k1];
  24. $v[$k1] = $v[$k2];
  25. $v[$k2] = $tmp;
  26.  
  27. return $tab = array_combine($k, $v);
  28. }
  29.  
  30.  
  31.  
  32.  
  33. }


Moze sie komus przyda.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.