<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Here’s a solution I came up with, which should generalize for any condition and for arrays with dimensions &gt;= 1 by 1. I’m not sure if there’s a Swiftier™ way to iterate over 2D arrays; if there is I’d like to hear it!<div class=""><br class=""></div><div class="">// Find the index of the first row in table in the column specified where the condition is true</div><div class="">func firstRow(table: [[Int]], forColumn column: Int, where predicate: (Int) -&gt; Bool) -&gt; Int {</div><div class=""><span class="Apple-tab-span" style="white-space:pre">        </span>for row in 0..&lt;table.count {</div><div class=""><span class="Apple-tab-span" style="white-space:pre">                </span>if predicate(table[row][column]) {</div><div class=""><span class="Apple-tab-span" style="white-space:pre">                        </span>return row</div><div class=""><span class="Apple-tab-span" style="white-space:pre">                </span>}</div><div class=""><span class="Apple-tab-span" style="white-space:pre">        </span>}</div><div class=""><span class="Apple-tab-span" style="white-space:pre">        </span>return -1</div><div class="">}</div><div class=""><br class=""></div><div class="">// Find the index of the first column in table in the row specified where the condition is true</div><div class="">func firstColumn(table: [[Int]], forRow row: Int, where predicate: (Int) -&gt; Bool) -&gt; Int {</div><div class=""><span class="Apple-tab-span" style="white-space:pre">        </span>for column in 0..&lt;table[row].count {</div><div class=""><span class="Apple-tab-span" style="white-space:pre">                </span>if predicate(table[row][column]) {</div><div class=""><span class="Apple-tab-span" style="white-space:pre">                        </span>return column</div><div class=""><span class="Apple-tab-span" style="white-space:pre">                </span>}</div><div class=""><span class="Apple-tab-span" style="white-space:pre">        </span>}</div><div class=""><span class="Apple-tab-span" style="white-space:pre">        </span>return -1</div><div class="">}</div><div class=""><br class=""></div><div class="">let input1 = 0 // Your user input here</div><div class="">let input2 = 0 // Your user input here</div><div class="">let table1 = [[1, 2], [3, 4]] // Your Table 1 here</div><div class="">let table2 = [[5, 6], [7, 8]] // Your Table 2 here</div><div class=""><br class=""></div><div class="">let row1 = firstRow(table: table1, forColumn: 0, where: { $0 &gt;= input1 })</div><div class="">let column1 = firstColumn(table: table1, forRow: 0, where: { $0 &gt;= input1 })</div><div class="">let value1 = table1[row1][column1]</div><div class=""><br class=""></div><div class="">let row2 = firstRow(table: table2, forColumn: 0, where: { $0 &gt;= input2 })</div><div class="">let column2 = firstColumn(table: table2, forRow: row2, where: { $0 &gt; input2 })</div><div class="">let value2 = table2[row2][column2]</div><div class=""><div class=""><br class="webkit-block-placeholder"></div><div class="">Hope this helps,<br class="Apple-interchange-newline"><span style="color: rgb(0, 0, 0); font-family: 'SF UI Text'; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">Saagar Jha</span><br style="color: rgb(0, 0, 0); font-family: 'SF UI Text'; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><br style="color: rgb(0, 0, 0); font-family: 'SF UI Text'; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><br style="color: rgb(0, 0, 0); font-family: 'SF UI Text'; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">
</div>
<br class=""><div><blockquote type="cite" class=""><div class="">On Nov 26, 2016, at 12:33, Paul via swift-users &lt;<a href="mailto:swift-users@swift.org" class="">swift-users@swift.org</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><meta http-equiv="Content-Type" content="text/html charset=utf-8" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Hi<div class=""><br class=""></div><div class="">I am almost a complete noob to Swift and I am writing my first app.</div><div class=""><br class=""></div><div class="">I need to read a value from a table and return that to the app to do a few calculations but I am so new I have no idea what is the best method to do this.</div><div class=""><br class=""></div><div class="">Specifically there are two tables (currently in microsoft excel) that i need to “read” and get a value from . The values in these tables never change so I can convert them into an array or other data structure that would make sense in Swift.</div><div class=""><br class=""></div><div class="">The first table is about 25 x 25 (rows and columns).</div><div class=""><br class=""></div><div class="">I need to read down the first column (A) to find the value that is equal to or the next larger value from what the user had input, and then I read across the first row (1) to find the value that is equal to or the next larger value. The cell where the row and column intersect contains a value and I want to extract that value and use it in a few calculations.</div><div class=""><br class=""></div><div class="">Can anyone help point me in a direction to get started with that?</div><div class=""><br class=""></div><div class="">The second table is 20 X 13 (rows v columns).</div><div class=""><br class=""></div><div class="">Similar to the first table, I need to read down the first column (A) to find the value that is equal to or the next larger value from what the user had input…<u class="">unlike the first table</u>, now I have to read across that specified row to find a cell value that is equal to or the next larger value to what the user input, and then read up to the column to the top row and read the value from the cell in row (0)</div><div class=""><br class=""></div><div class="">Again, I would appreciate any help about how to accomplish this.</div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">Thanks in advance</div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">Paul</div></div>_______________________________________________<br class="">swift-users mailing list<br class=""><a href="mailto:swift-users@swift.org" class="">swift-users@swift.org</a><br class="">https://lists.swift.org/mailman/listinfo/swift-users<br class=""></div></blockquote></div><br class=""></div></body></html>